Regular expressions are used to describe regular languages algebraically. They are defined recursively, where basic regular expressions include symbols and the empty string, and are combined using operators like union, concatenation, and Kleene closure. Both regular expressions and finite automata can be used to define the same class of regular languages. It is possible to convert between regular expressions and finite automata by constructing automata from expressions and vice versa.