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. 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 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
		
			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.