| range-set  ::= range ( logical-or range ) *logical-or ::= ( ' ' ) * '||' ( ' ' ) *range      ::= hyphen | simple ( ' ' simple ) * | ''hyphen     ::= partial ' - ' partialsimple     ::= primitive | partial | tilde | caretprimitive  ::= ( '<' | '>' | '>=' | '<=' | '=' ) partialpartial    ::= xr ( '.' xr ( '.' xr qualifier ? )? )?xr         ::= 'x' | 'X' | '*' | nrnr         ::= '0' | [1-9] ( [0-9] ) *tilde      ::= '~' partialcaret      ::= '^' partialqualifier  ::= ( '-' pre )? ( '+' build )?pre        ::= partsbuild      ::= partsparts      ::= part ( '.' part ) *part       ::= nr | [-0-9A-Za-z]+
 |