Is this even possible?
Basically, I want to turn these two calls to sub into a single call:
re.sub(r\'\\bAword\\b\', \'Bword\', mystring) re.sub(r\'\
You can pass a lambda function which uses the Match object as a parameter as the replacement function:
import re re.sub(r'\baword\b', lambda m: m.group(0)[0].lower() == m.group(0)[0] and 'bword' or 'Bword', 'Aword aword', flags=re.I) # returns: 'Bword bword'