Set of specified characters. It is specified as a list of characters, or as a range of characters where the beginning and end of the range are separated by a minus character, or as any combination of lists and ranges. The dash can also be included in the set as a character if it is the beginning or end of the set. This set is enclosed in square brackets. The close square bracket may be used in a set if it is the first character in the set.
Negation of a set. It is specified the same way as the set with the addition of a caret character at the beginning of the test string just inside the open square bracket.
Backslash character to invalidate the special meaning of the open square bracket, the asterisk, backslash or the question mark. Two backslashes in sequence will result in the evaluation of the backslash as a character with no special meaning.
Examples
*foo* matches string containing "foo".
mini* matches anything that begins with "mini".
???* matches any string of three and more letters.
-] matches a character other than a close square bracket or a dash.
Usage
wildmat is most commonly seen in NNTP implementations such as Salz's own INN, also in unrelated software such as GNU tar and Transmission. GNU tar replaced wildmat with the POSIX fnmatch glob matcher in September 1992. The early version contained a potential out-of-bound access on unclosed. The original byte oriented wildmat implementation is unable to handle multibyte character sets, and poses problems when the text being searched may contain multiple incompatible character sets. A simplified version of wildmat oriented toward UTF-8 encoding has been developed by the IETF NNTP working group. It is a part of , the 2006 standard for NNTP. In the newer INN which supports UTF-8, a "uwildmat" was added which supports all the features of wildmat. This 2000 rewrite, performed by Russ Allbery, fixes the OOB in the original implementation. Tightly-wound C loops were written out into smaller statements. Rsync includes a GPLv3-licensed wildmat descendant known as wildmatch, modified by Wayne Davison. The Git version control system imports and makes use of it. It does not support UTF-8, but has the OOB fixed and has additional support for character classes and star globs.