Какие кодовые точки считаются символом класса слов, не зависит от локали в Юникоде, а LATIN SMALL LETTER N WITH TILDE
всегда является символом слова.
Вот рабочий процесс, полностью работающий по UTF8, демонстрирующий поиск amo
после границы слова и после не- (границы слова):
$ perl -Mutf8 -CSDA -e 'print "cáñamo\namo\n"' |
perl -Mutf8 -CSDA -ne 'print if /\bamo\b/'
amo
$ perl -Mutf8 -CSDA -e 'print "cáñamo\namo\n"' |
perl -Mutf8 -CSDA -ne 'print if /\Bamo\b/'
cáñamo
Я не могу не удивляться вашему выбору строк поиска. Спасибо за смешок.