ABNF from RFC2234 ================= rules may be surrounded by <> rulename = elements continuation lines indented % %-base-number[.number[...]] CRLF is %d13.10 or %x0D.0A %x30-39 any of range of "0" through "9" " literals in double quotes - case INsensitive ; comment / alternatives =/ adds alternative to existing rule () grouping * prefix operator for repetition n*m means n to m times, default 0 to inf can omit either n or m when default is desired can omit the * when n=m, so 2DIGIT would be two digits [ square brackets enclose optional part. [FOO] means *1(FOO) Precedence: Strings, Names formation Comment Value range Repetition Concatenation Alternative CORE RULES ========== ALPHA = %x41-5A / %x61-7A ; A-Z / a-z BIT = "0" / "1" CHAR = %x01-7F ; any 7-bit US-ASCII character, excl. NUL CR = %x0D ; carriage return CRLF = CR LF ; Internet standard newline CTL = %x00-1F / %x7F DIGIT = %x30-39 ; 0-9 DQUOTE = %x22 ; " (Double Quote) HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F" HTAB = %x09 ; horizontal tab LF = %x0A ; linefeed LWSP = *(WSP / CRLF WSP) ; linear white space (past newline) OCTET = %x00-FF ; 8 bits of data SP = %x20 VCHAR = %x21-7E ; visible (printing) characters WSP = SP / HTAB ; white space