どうも、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"(^[ぁ-んむ]*$)");

としておくと動くようだ。
意味がわからない。