I feel like a complete idiot but I can't figure out why re.sub won't match multiline strings: This works: >>> re.search("^foo", "\nfoo", re.MULTILINE) <_sre.SRE_Match object at 0x6c448> This doesn't. No replacement: >>> re.sub("^foo", "bar", "\nfoo", re.MULTILINE) '\nfoo' Why? Thanks, nyenyec