The syntax is specified using Extended Backus-Naur Form (EBNF): | alternation () grouping [] option (zero or one time) {} repetition (any number of times) For more information about using proto2, see the language guide. Lexical Elements Letters and Digits letter = "A" ... "Z" | "a" ... "z" capitalLetter = "A" ... "Z" decimalDigit = "0" ... "9" octalDigit = "0" ... "7" hexDigit = "0" ... "9" | "A" .