This quote by Brian Kernighan is especially true for regular expressions.
Everyone knows that debugging is twice as hard as writing a program in
the first place. So if you're as clever as you can be when you write
it, how will you ever debug it?
So if something is difficult to do in a single regular expression, you might want to split it into two steps. Find all words first, and then filter out the all uppercase words. Easier to understand and easier to test.
>>> import re
>>> s="I REALLY don't want to talk about it, not at all!"
>>> words = re.findall(r"[\w']+", s)
>>> words = [w for w in words if w.upper() != w]
>>> print(words)
["don't", 'want', 'to', 'talk', 'about', 'it', 'not', 'at', 'all']