A generalized representation of a regular expression.
This code was ported (with minor modifications) from
the type of each element in the input. For a traditional regular expression, this
would be Char.
metadata associated with each ceedubs.irrec.regex.Regex.Elem instance. This could
be String to attach a name to elems. More commonly, it is something like
ceedubs.irrec.regex.Match with a Char type parameter.
the output produced by a regular expression if the input matches.
Additional useful methods are added via syntax enrichment with ceedubs.irrec.regex.RegexOps