Короче говоря:
>>> re.compile(r"\w*").match(u"Français")
<_sre.SRE_Match object at 0x1004246b0>
>>> re.compile(r"^\w*$").match(u"Français")
>>> re.compile(r"^\w*$").match(u"Franais")
<_sre.SRE_Match object at 0x100424780>
>>>
Почему она не соответствует строке с символами Юникода с ^
и $
в регулярном выражении? Насколько я понимаю, ^
обозначает начало строки (строки), а $
- ее конец.