::= "<" (|"#"|"_") (~[">"," "])* ">" ::= ()? ":" ::= ()? ":" (|)? ::= "_:" (|) ::= "_:" (|) ::= ("?"|"$") (|) ::= ()+("-" ()+)? <#A2Z> ::= ["a"-"z","A"-"Z"] <#A2ZN> ::= ["a"-"z","A"-"Z","0"-"9"] ::= // ::= "0" ["x","X"] (["0"-"9","a"-"f","A"-"F"])+ ::= (["0"-"9"])+ "." (["0"-"9"])* ()?| "." (["0"-"9"])+ ()?| (["0"-"9"])+ <#EXPONENT> ::= ["e","E"] (["+","-"])? (["0"-"9"])+ ::= "'" ( (~["'","\\","\n","\r"]) | ("\\" ~["\n","\r"]) )* "'" ::= "\"" ( (~["\"","\\","\n","\r"]) | ("\\" ~["\n","\r"]) )* "\"" ::= (["0"-"9"])+ [] ::= "base" [] ::= "prefix" [