A file specified in the filterfile option of /etc/news/leafnode/config contains the set of filtering
rules that are applied to the newsspool. Each rule must be on a separate line. Empty lines and comments
(marked by a # which MUST be at the beginning of the line) are allowed and will be ignored.
Each line contains a regular expression that will be compiled with the PCRE_MULTILINE option set (unless
it is a comment line or an empty line). Every regular expression applied to the whole message header
(folded message headers are unfolded before the match is attempted). If any regular expression matches
the header, the posting gets removed. For example, the following set of rules will delete all
crosspostings to alt.flame.
^Newsgroups:.*[, ]alt.flame$
^Newsgroups:.*[, ]alt.flame,
^Newsgroups: indicates that the pattern should only be applied to the Newsgroups: header. After the
header, an arbitrary number of characters may follow, ending in either a comma or a space. After that,
alt.flame must be in the line, either at the end of the line (first entry) or in the middle of the line,
followed by other newsgroups (second entry).
Unfortunately, regular expressions are a complex matter and outside the scope of this document. Please
see the manual pages provided with the PCRE library for details.
Note that some leafnode programs (such as fetchnews) feed the header line by line to the regexp (after
unfolding), others (such as applyfilter) feed the whole header in one large blob. This does not usually
matter because patterns are compiled in multiline mode, but will matter if you are trying to match
multiple headers in the same regexp – this would work with applyfilter, but not with fetchnews.