В атрибуте pattern нельзя использовать флаги в регулярных выражениях?
Что-то не нашла полной документации, насчет атрибута pattern.
Вот так работает валидация pattern="^[А-ЯЁ][А-ЯЁа-яё]*?-?[А-ЯЁа-яё]+$"
А вот так нет pattern="/^[А-ЯЁ][А-ЯЁа-яё]*?-?[А-ЯЁа-яё]+$/g"
Как использовать флаги регулярных выражений?