1 (* https://bottlecaps.de/rr/ui *)
4 ::= PropertyName ( '=' Value )? ( ',' PropertyName ( '=' Value )? )*
5 Query ::= PropertyQuery ( ',' PropertyQuery )*
6 PropertyQuery ::= '-'? PropertyName
7 | '?'? ( PropertyName (( '=' | '!=' ) Value)?)
8 Value ::= NumberLiteral
10 StringLiteral ::= QuotedString | UnquotedString
11 QuotedString ::= '"' [^"]* '"'
13 UnquotedString ::= [^{space},]+
15 ::= '0' ( [0-7]* | 'x' [0-9A-Fa-f]+ )
18 ::= [A-Z] [A-Z0-9_]* ( '.' [A-Z] [A-Z0-9_]* )*