На этот вопрос уже есть ответ:
Из pydoc:
re.sub = sub (шаблон, repl, string, count = 0, flags = 0)
Вернуть строку, полученную заменой крайнего левого неперекрывающиеся вхождения шаблона в строку замена репл. REP может быть либо строкой, либо вызываемой; если строка, то в ней обрабатываются экранирующие символы обратной косой черты. Если это вызываемый, он передал объект соответствия и должен возвращать строка замены, которая будет использоваться.
пример кода:
import re
print re.sub('class', 'function', 'Class object', re.I)
Замена не производится, если я не изменю шаблон на «Класс».
В документации ничего не упоминается об этом ограничении, поэтому я предполагаю, что я делаю что-то не так.
Что здесь происходит?