Boolean wildmats as an option 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 (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 the 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. {x...y{m,n} {^x...y{m,n} - Expands the previous two pattern interpretations. m is the minimum number of a set character repetitions, n is the maximum number. Both numbers may be empty (or zero). If the first number is empty the meaning is 0 or more. If the second number is empty the number of repetitions is not limited. Differently from the previous implementation when the minus sign, the opening curly bracket or the closing curly bracket is used in the character set they must appear first in the following sequence -{}. For example {^-}a-z{2,} matches any sequence of 2 or more characters which don't contain the minus sign, the closing curly bracket or any latin alphabet letter. Since the difference is so subtle - generally the previous filter patterns function the same. (v6.1+) " - Matches one or more non-alpha/non-numeric characters or beginning/end of the string. "" - When used as the whole pattern matches the empty string (v5.4.2+). 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 extension - 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. Appendix Wildmats Wildmats are only used to set search patterns for XPAT groups. XPAT is server side feature so it is subject to the standard wildmat rules. XPAT is rarely used feature since for binary newsgroups it is slow and for text newsgroups it is very fast to download all headers except if you are on modem connection. Usenet Explorer can translate patterns to be case incensitive. Below is the standard wildmat description (you can also find it elsewhere): 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 - Turns off the special meaning of x and matches it directly; this is used mostly before a question mark or asterisk, and is not special inside square 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 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 bracket or minus sign. Note: The last control sequence is not implemented correctly in the standard code and if the pattern starts with [^x...y] and the match is in the beginning of the string or the pattern ends with [^x...y] and the match is in the end of the string the result will be "mismatch". The bug doesn't exist in boolean wildmats.