You can replace it directly:
>>> import re
>>> s="sdfjoiweng%@$foo$fsoifjoi"
>>> print(re.sub('foo','bar',s))
sdfjoiweng%@$bar$fsoifjoi
It will also work for more occurrences of foo like below:
>>> s="sdfjoiweng%@$foo$fsoifoojoi"
>>> print(re.sub('foo','bar',s))
sdfjoiweng%@$bar$fsoibarjoi
If you want to replace only the 1st occurrence of foo and not all the foo occurrences in the string then alecxe’s answer does exactly that.