Regular expressions are expressions denoting certain [[strings and languages|languages]]. ​ They are precisely those languages that can be built from the singleton languages $\{\epsilon\}$,​ and $\{a\}$ for each $a \in \Sigma$, using operations union ($\cup$), concatenation (${\cdot}$),​ and iteration ($*$) on languages. ​

Regular expressions are expressions denoting certain [[strings and languages|languages]]. ​ They are precisely those languages that can be built from the singleton languages $\{\epsilon\}$,​ and $\{a\}$ for each $a \in \Sigma$, using operations union ($\cup$), concatenation (${\cdot}$),​ and iteration ($*$) on languages. ​

-

In regular expressions,​ $\cup$ is typically denoted $+$ (sometimes $|$), and the curly braces around singleton sets are omitted, so the language $\{a\}$ for $a \in \Sigma$ is denoted simply $a$ and the language $\{\epsilon\}$ by $\epsilon$. ​ The concatenation operator is simply omitted. ​ We next make this more precise. ​ We write $L(r)$ to denote the set that denotes the meaning of a regular expression.

+

In regular expressions,​ $\cup$ is typically denoted $|$ (sometimes $+$), and the curly braces around singleton sets are omitted, so the language $\{a\}$ for $a \in \Sigma$ is denoted simply $a$ and the language $\{\epsilon\}$ by $\epsilon$. ​ The concatenation operator is simply omitted. ​ We next make this more precise. ​ We write $L(r)$ to denote the set that denotes the meaning of a regular expression.