A regular expression consists of a set of branchs:
pattern1 | pattern2 | pattern3
A branch is a sequence of atoms--each of which can have a quantifier.
An atom is:
A character 'a' or character class '[a-z]'.
A parenthesized regular expression: (a|b)
An escape (e.g. \d or \p{Is-Basic-Latin})