Это регулярное выражение
RE re("(?<![" ALNUM ",:\\.\\/-])([Μμ]έρος|[Σσ]υνεδρία|[Κκ]εφάλαιο|[Αα]ριθμός|[Ππ]ράξη|[Ττ]όμος|[Ππ]αράγραφος) ([IVXLCDM]+)(?![" ALNUM "\\$£€-])");
соответствует "τόμος I", но
RE re("(?<![" ALNUM ",:\\.\\/-])([Μμ]έρος |[Σσ]υνεδρία |[Κκ]εφάλαιο |[Αα]ριθμός |[Ππ]ράξη |[Ττ]όμος |[Ππ]αράγραφος )([ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩϞϠ]+)(\\')?(?![" ALNUM "\\$£€-])");re
не соответствует "τόμος Α '" или "τόμος Α".
Есть предположения, почему? Я переписал его в Python, Golang и Javascript, и он работает, но в C ++ он не совпадает. Я также попытался сопоставить символ utf-8, но все равно ничего. Есть предположения о том, что я делаю не так?