Substitutions are not managed.
Some regex that can be useful (without warranty).
The last RFC is complex, there is no reliable solution, this regex should work more than 99% of the time (You must turn off case sensitivity).
The regex below allows to validate alphanumeric string. Be careful, \w authorizes the underscore character.
The regex below allows to validate MD5 string.
The regex below allows to validate IP v4.
A regular expression is a sequence of characters that define a search pattern. This pattern is used by string searching algorithms for find or replace text.
It can be useful to validate an EMAIL address or an IP address.
|. Matches any single character except line break (\n, \r)|
|x? Matches with the preceding item 0 or 1 time. For example, /hello?/ matches with "hell" and "hello".|
|x+ Matches with the preceding item 1 or more times. For example, /hello+/ matches with "hello", "helloooooo"....|
|x* Matches with the preceding item 0 or more times. For example, /hello*/ matches with "hell", "helloooooo"....|
|$ Matches the end of the input.|
|^ Matches the beginning of the input.|
|[xyz] A character set: Matches any one of the enclosed characters in the brackets.|
|[x-z] A range of characters: For example, [x-z] is the same as [xyz]|
|[^xyz] A negated character set: Matches anything that is not enclosed in the brackets.|
|x|y Matches either x or y.|
|\t Matches a tab character|
|\r Matches a carriage return|
|\n Matches a linefeed|
|\d Matches any digit. It is the same as [0-9]|
|\D Matches any character that is not a digit. It is the same as [^0-9]|
|\w Matches any alphanumeric character (Latin alphabet and underscore). It is the same as [A-Za-z0-9_]|
|\W Matches any character that is not a alphanumeric character (Neither Latin alphabet nor underscore). It is the same as [^A-Za-z0-9_]|
|\s Matches a single white space character (space, tab, line break). It is the same as [ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]|
|\S Matches a single character other than white space (space, tab, line break). It is the same as [^ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]|