import re
rx = r"('[^'\\]*(?:\\.[^'\\]*)*')|\b{0}\b"
s = r"""
var foe = 10;
foe = "";
dark_vador = 'bad guy'
foe = ' I\'m your father, foe ! '
bar = thingy + foe"""
toReplace = "foe"
res = re.sub(rx.format(toReplace), lambda m: m.group(1) if m.group(1) else 'NEWORD', s)
print(res)
aW1wb3J0IHJlCnJ4ID0gciIoJ1teJ1xcXSooPzpcXC5bXidcXF0qKSonKXxcYnswfVxiIgpzID0gciIiIgogICAgdmFyIGZvZSA9IDEwOwoJZm9lID0gIiI7CglkYXJrX3ZhZG9yID0gJ2JhZCBndXknCglmb2UgPSAnIElcJ20geW91ciBmYXRoZXIsIGZvZSAhICcKCWJhciA9IHRoaW5neSArIGZvZSIiIgp0b1JlcGxhY2UgPSAiZm9lIgpyZXMgPSByZS5zdWIocnguZm9ybWF0KHRvUmVwbGFjZSksIGxhbWJkYSBtOiBtLmdyb3VwKDEpIGlmIG0uZ3JvdXAoMSkgZWxzZSAnTkVXT1JEJywgcykKcHJpbnQocmVzKQo=