Не знаю о Ruby, но большинство движков регулярных выражений не понимают прописные / строчные буквы для не ASCII-символов. Лучшее, что вы можете сделать, это:
/(n[ãÃ]o)/
Проблема с пониманием отношения прописных / строчных букв заключается в том, что оно зависит от языка. Юникод кодирует только форму символа, а не его значение. Следовательно, заглавные буквы в Unicode могут иметь разные строчные буквы в зависимости от языка.
Взять, к примеру, SS
. На английском языке строчная буква будет ss
, но на немецком это может быть ß
. Другим примером является буква I
, которая на английском языке имеет строчную букву i
, но на турецком языке ее строчная буква ı
(без точки). Это потому, что i
на турецком языке имеет заглавные буквы İ
(с точкой).
Из-за этого большинство реализаций регулярных выражений просто сдаются и отказываются понимать прописные / строчные отношения для символов вне стандартного ASCII.