If you are using <regex>, this is probably the STL. Multiple grammars are available, including ECMAScript and both POSIX variants. The default is ECMAScript (same as JavaScript), so browser-based tools like regexr.com (http://regexr.com) (my favourite) should be accurate.
To avoid escaping issues, I recommend you use C++11's raw string literals (https://docs.microsoft.com/en-us/cpp/cpp/string-and-character-literals-cpp?view=vs-2019) instead of normal double quotes, and this is probably one of the main reasons they were added to the language:
std::regex myre(R"((0[.]0*[1-9]+)|[1-9][0-9]*([.][0-9]+)?\s+A)");
std::regex_search("0.123", myre); // true
std::regex_search("51.1 A", myre); // true