This week I learned there are three primitive operations for regular expressions:

  1. Union (Alternation)
  2. Concatenation
  3. Closure (Star, Kleene Closure)

I think you can define a regular expression for any DFA using these primitives. Does this means that everything else is sugar for these primitives (e.g. ?, +, etc.)?