1. <text, operating system> (regexp, RE) One of the wild card patterns used by Perl and other languages, following Unix utilities such as grep, sed, and awk and editors such as vi and Emacs. Regular expressions use conventions similar to but more elaborate than those described under glob. A regular expression is a sequence of characters with the following meanings (in Perl, other flavours vary):
A backslash (\) followed by any special character matches the special character itself. The special characters are:
"." matches any character except newline; "RE*" (where RE is any regular expression and the "*" is called the "Kleene star") matches zero or more occurrences of RE. If there is any choice, the longest leftmost matching string is chosen.
[CHARS] matches any one of the characters in CHARS. If the first character of the string is a "^" it matches any character except the remaining characters in the string (and also usually excluding newline). "-" may be used to indicate a range of consecutive ASCII characters.
(RE) matches whatever RE matches and \N, where N is a digit, matches whatever was matched by the RE between the Nth "(" and its corresponding ")" earlier in the same RE. Many flavours use \(RE\) instead of just (RE).
The concatenation of REs is a RE that matches the concatenation of the strings matched by each RE. RE1 | RE2 matches whatever RE1 or RE2 matches.
[Jeffrey E.F. Friedl, "Mastering Regular Expressions, O'Reilly, 1997].
2. Any description of a pattern composed from combinations of symbols and the three operators:
Or - pattern A-or-B matches either a match for A or a match for B.
Closure - zero or more matches for a pattern.
The earliest form of regular expressions (and the term itself) were invented by mathematician Stephen Cole Kleene in the mid-1950s, as a notation to easily manipulate "regular sets", formal descriptions of the behaviour of finite state machines, in regular algebra.