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