re.search(r'=\s*(.*)', 'str = str2').group(1)
или если вам нужно только одно слово:
re.search(r'=\s*(\w+)', 'str = str2').group(1)
Расширен до конкретной начальной строки:
re.search(r'\bstr\s*=\s*(\w+)', 'str=str2').group(1)
\b
= граница слова, поэтому не будет совпадать "somestr=foo"
Было бы быстрее пройти через все варианты один раз, вместо того, чтобы искать один вариант по одному:
option_str = "a=b, c=d, g=h"
options = dict(re.findall(r'(\w+)\s*=\s*(\w+)', option_str))
options['c'] # -> 'd'