Проблема в том, чтобы определить, что такое слово.
Например, вы можете использовать
^(\w+).+?(\b\w+)$
Что будет соответствовать
Regex is really confusing
Но это не будет учитывать точку в конце.
Другой вариант - использовать
^(\S+).+?(\b\S+)$
, который будет работать даже с точкой.
В целом вам может потребоваться
nltk
вместо:
from nltk import word_tokenize
sentence = "Regex is really confusing."
tokens = word_tokenize(sentence)
print(tokens)
# ["Regex", "is", "really", "confusing", "."]