* `header` - matches any header specified (must have `header = "Header-Name"` configuration attribute)
* `dnsbl` - matches source IP against some DNS blacklist (consider using [RBL](rbl.md) module for this)
* `url` - matches URLs in messages against maps
+* `filename` - matches attachment filename against map
DNS maps are legacy and are not encouraged to use in new projects (use [rbl](rbl.md) for that).
}
~~~
-To enable pre-filter mode
+All maps but `ip` and `dnsbl` support `regexp` mode. In this mode, all keys in maps are treated as regular expressions, for example:
+
+ /example\d+\.com/i
+ /other\d+\.com/i test
+
+For performance considerations, use only expressions supported by [hyperscan](http://01org.github.io/hyperscan/dev-reference/compilation.html#pattern-support) as this engine provides blazing performance at no additional cost. Currently, there is no way to distinguish what particular regexp was matched in case if multiple regexp were matched.
### Map filters
* `tld:regexp:/re/` - extracts generic information using the specified regular expression from the TLD part
* `full:regexp:/re/` - extracts generic information using the specified regular expression from the full URL text
+Filename maps support this filters set:
+
+* `extension` - matches file extension
+* `regexp:/re/` - extract data from filename according to some regular expression
+
Here are some examples of pre-filter configurations:
~~~nginx