Regular expression engines

To start with, what are regular expressions?

Regular expressions are strings that the regex engine interprets to match a specific text. It's like an advanced way of searching.

Assume that you want to search a file for lines starting with any small letters, or you want to search for lines that contain a number, or maybe search for lines starting with specific text. The normal search can't be generic: the only way to do that is to use regular expressions.

And what is the regex engine?

The regex engine is the piece of software that understands these strings and translates them to find the matched text.

There are many regex engines out there; for example, the engines that are shipped with programming languages such as Java, Perl, and Python. Also, the engines that Linux tools use are sed and AWK, and the important thing for us now is to learn the types of regex engine in Linux.

There are two types of regex engine in Linux:

Most Linux binaries understand both engines, such as sed and AWK.

grep also can understand ERE, but you have to use the -E option, which is equivalent to using egrep.   

We will see how to define a regex pattern for sed and AWK. We will start by defining BRE patterns, so let's get started.