どうも、Visual Studio 2022のC++コンパイラー19.40.33813 for x64のSTLにはバグがあるらしい。
BSDのclangとかでは試してないのでこちらの勘違いかもしれないが、UTF-8文字列の正規表現比較で
> std::regex re((char *)u8R"(^[ぁ-ん]*$)");
> if (!std::regex_match(str, re)) { エラー処理 }
とした時、なぜか比較対象に "む" が含まれていると[ぁ-ん]でマッチせず、不一致扱いになる
> std::regex re((char *)u8R"(^[ぁ-んむ]*$)");
としておくと動くようだ。
意味がわからない。