A regular language is a language that can be described by regular expressions.
A language which cannot be described by a regular expression is called non-regular.
Regular expressions are not very powerful at describing languages mostly due to their lack of recursion definition.
Context-free grammar(CFG) has been created to resolve this problem and defines any kind of recursive language.
A language is also regular, if its syntax can be expressed by a single context free expression. (ie they can be described by finite automata)
The requirement that a single equation suffices also implies that only terminal symbols occur in the expression. Such an expression is called a regular expression.
Programs are particularly simple and efficient:
If the algorithm takes: