Grammar:

 - Number: remove ambiguities, left-factor
 - Cond: factor out complicated sub-rule
 - consistency:
   - use `{...}` around quantifiers
   - `/.../` for regexes