Почему JS матчит обратный апостроф в регулярке?
[А-Я] 
тут буква А - латинская, в интервале между латинской А и русской Я много чего. Проверь буквы.
Какая-то лажа при использовании диапазона заглавных букв А-Я в списке символов. Если его не указывать (а его и не надо указывать - ведь указан флаг i), то всё работает.