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










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.