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