Any variation on the basic
Backus-Naur Form (BNF)
meta-syntax notation with (some of) the following additional
constructs: square brackets "[..]" surrounding optional
items, suffix "*" for
Kleene closure (a sequence of zero or
more of an item), suffix "+" for one or more of an item,
curly brackets enclosing a list of alternatives, and
super/subscripts indicating between n and m occurrences.
All these constructs can be expressed in plain BNF using extra
productions and have been added for readability and
succinctness.