Search Examples

If you are done with this topic please proceed to Features overview.

Usenet Explorer uses boolean wildmats to define search patterns.

See Boolean wildmats, for the text description (special characters are different from XPAT wildmats).

 

 

 

 

 

 

 

 

 

 
 
Next - Features overview
 
 

Boolean wildmats - text description

		Wildmats are like wildcards. Original wildmats are used to implement e.g. XPAT command on the server 
		side but they are limited and the original implementation does not always work (see the appendix in 
		the bottom). In Usenet Explorer the original code has been changed to render wildmats more useful. 
		Boolean wildmats are used in the quick filter, filters and for the indexing service searches. Note, 
		that you don't need to put asterisks around your boolean wildmat patterns and the patterns are 
		case-insensitive except for filters where case sensitivity is optional.
		
		The differences between Usenet Explorer wildmats described below and the original wildmats (see the 
		appendix) except for fixed bugs in the original code are the following: 
		
			[] were replaced with {} since square brackets are too common in real world subjects
			
			" special character added to help in matching whole words
			
			\ only turns off the special meaning of the special characters and not every character
			
		As a result usual copy/paste will very likely to achieve a ready match pattern without any modification.
	
		Wildmats (Usenet Explorer interpretation)
		
			Wildmat compares the text against the pattern. The pattern is interpreted according to rules 
			similar to wildcards, and not as a full regular expression (so it runs much faster).

			The pattern is interpreted as follows: 

				\x	- If x is a boolean wildmat special character, i.e. one of ? * { } " ( ) ^ & | \
					  turns off the special meaning of x and matches it directly otherwise \ is not 
					  interpreted as a special character. It is not special inside curly brackets. 
				
				?	- Matches any single character. 

				* 	- Matches any sequence of zero or more characters. 
				
			     {x...y}	- Matches any single character specified by the set x...y. A minus sign may be used 
			     		  to indicate a range of characters. That is, {0-5abc} is a shorthand for {012345abc}. 
			     		  More than one range may appear inside a character set; {0-9a-zA-Z._} matches almost 
			     		  all of the legal characters for a host name. The close curly bracket, }, may be used 
			     		  if it is the first character in the set. The minus sign, -, may be used if it is 
			     		  either the first or last character in the set. 

			    {^x...y}	- This matches any character not in the set x...y, which is interpreted as described 
			    		  above. For example, {^}-} matches any character other than a close curly bracket or 
			    		  minus sign.
			    		  
				"	- Matches one or more non-alpha/non-numeric characters or beginning/end of the string.

			Given the above since wildmat substring oriented patterns may result in too many matches (e.g. when 
			you match short words which may happen inside other words) there is a simple way to match whole words:
			
				"bach"

		        phrases:
		        
		        	"usenet explorer"
		        	
		        or words:
		        
		        	"bach"*"air"

			note that the double quote character can also limit the word from one side only:
			
				"usenet exp
				
				senet explorer"   	

		Boolean wildmats (UE wildmat extention - won't work for xpat groups since not implemented on the server side) 
		
			Whole wildmats can be combined with boolean operations:
			(from the highest to lowest precedence) 
			
				 ^	- NOT
				 & 	- AND
				 | 	- OR

			For example:
			
				"bach"&"air"
			
			Also they can be enclosed in nested parentheses e.g. subject
			
				(mozart|"bach")&^"cpe" - will show all headers which contain "mozart" or "bach" but don't contain "cpe"
				
	 		To turn off the special meaning like in wildmats put the backslash character before the control characters.
	 		
	 		When the left parenthesis is not the leftmost character and is not precedeed by ^ & | the backslash character 
	 		before it may be omitted, the same true for right parentheses without matching left parentheses.