A regular expression is a pattern—a template—to be matched against a string. Matching a regular expression against a string either succeeds or fails. Sometimes, the success or failure may be all you are concerned about. At other times, you will want to take a matched pattern and replace it with another string, parts of which may depend on exactly how and where the regular expression matched.
Regular expressions are used by many programs, such as the UNIX commands, grep, sed, awk, ed, vi, emacs, and even the various shells. Each program has a different set of (mostly overlapping) template characters. Perl is a semantic superset of all of these tools: any regular expression that can be described in one of these tools can also be written in Perl, but not necessarily using exactly the same characters.