X = Y . means "an X is defined to be a Y" X | Y means "either an X or a Y" [ X ] means "0 or 1 occurrence(s) of an X" { X } means "0 or more occurrences of an X" also () group sub-expressions "" enclose a terminal symbol