|  | 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]+
 |