There is no standard, but if your mobility is important, you should stick with the functions supported by regular JavaScript expressions. All of the other main flavors support everything JS does, with slight variations here and there. For example, some only support POSIX character class notation ( [:alpha:] ), while others use Unicode syntax ( \p{Alpha} ).
Probably the most unpleasant variations are those that affect the point ( . ) And anchors ( ^ and $ ). For example, JavaScript does not have DOTALL mode (or "single-line"), so to match anything, including a new line, you need to use a hack like [\s\S] . Meanwhile, Ruby has DOTALL mode, but calls it multi-line mode — what everyone else calls “multi-line” ( ^ and $ as linear anchors) is how Ruby always works.
Remember also that the point does not match (in default mode). Traditionally, this was just a newline ( \n ), but more and more tastes are accepting (or at least approaching) Unicode recommendations regarding line separators. For example, in Java, a dot does not match any of [\r\n\u0085\u2028\u2029] , while ^ and $ treat \r\n as one separator and will not match between two characters.
Please note that I am only talking about Perl-derived aromas such as Python, Ruby, PHP, JavaScript, etc. It makes no sense to include GNU or POSIX such as grep, awk, and MySQL; they usually have fewer features, but that’s not what you would choose for them anyway.
I also do not include the XML Schema flavor; it is much more limited than JavaScript, but it is a specialized application. For example, it does not support bindings ( ^ , $ , \A , \Z , etc.), because matches are always bound at both ends.