You seem to want only strings that contain letters (plus maybe an apostrophe), but no numbers, though you have expressed the requirements more verbosely. This can be accomplished without regexes as follows:
not any(c for c in my_str if c not in string.ascii_letters + "'")
See the following example code:
>>> test = ['abcde', "abcde'", 'abcde123', "abcde'123", 'abcde.']
>>> for s in test:
... print(s, '-->', not any(c for c in s if c not in string.ascii_letters + "'"))
...
abcde --> True
abcde' --> True
abcde123 --> False
abcde'123 --> False
abcde. --> False
Hopefully it's obvious that it would be more efficient to do the string.ascii_letters + "'"
only once, and that you must import string
first. This is just an example.