# REGEXP_TABLE(5)                                   REGEXP_TABLE(5)
# 
# NAME
#        regexp_table - format of Postfix regular expression tables
# 
# SYNOPSIS
#        regexp:/usr/local/etc/postfix/filename
# 
#        postmap -q "string" regexp:/usr/local/etc/postfix/filename
# 
#        postmap -q - regexp:/usr/local/etc/postfix/filename <inputfile
# 
# DESCRIPTION
#        The Postfix mail system uses optional tables  for  address
#        rewriting or mail routing. These tables are usually in dbm
#        or db format. Alternatively, lookup tables can  be  speci-
#        fied in POSIX regular expression form.
# 
#        To  find out what types of lookup tables your Postfix sys-
#        tem supports use the postconf -m command.
# 
#        To  test  lookup  tables,  use  the  postmap  command   as
#        described in the SYNOPSIS above.
# 
#        The general form of a Postfix regular expression table is:
# 
#        /pattern/flags result
# 
#        !/pattern/flags result
#               When pattern matches  (does  not  match)  a  search
#               string, use the corresponding result value.
# 
#        blank lines and comments
#               Empty  lines and whitespace-only lines are ignored,
#               as are lines whose first  non-whitespace  character
#               is a `#'.
# 
#        multi-line text
#               A  logical  line starts with non-whitespace text. A
#               line that starts with whitespace continues a  logi-
#               cal line.
# 
#        if /pattern/flags
# 
#        if !/pattern/flags
# 
#        endif  Examine the lines between if..endif only if pattern
#               matches (does not match). The if..endif  can  nest.
#               Do   not  prepend  whitespace  to  patterns  inside
#               if..endif.
# 
#        Each pattern is a regular expression enclosed by a pair of
#        delimiters.  The regular expression syntax is described in
#        re_format(7).  The expression delimiter can be any charac-
#        ter,  except  whitespace  or  characters that have special
#        meaning (traditionally the forward  slash  is  used).  The
#        regular expression can contain whitespace.
# 
#        By default, matching is case-insensitive, although follow-
#        ing the second slash with an `i' flag will  reverse  this.
#        Other  flags are `x' (disable extended expression syntax),
#        and `m' (enable multi-line mode, that  is,  treat  newline
#        characters as special).
# 
#        Each  pattern  is applied to the entire lookup key string.
#        Depending on the application, that  string  is  an  entire
#        client hostname, an entire client IP address, or an entire
#        mail address.  Thus, no parent domain  or  parent  network
#        search  is  done,  and  user@domain mail addresses are not
#        broken up into their user and  domain  constituent  parts,
#        nor is user+foo broken up into user and foo.
# 
#        Patterns  are  applied  in  the  order as specified in the
#        table, until a pattern is found that  matches  the  search
#        string.
# 
#        Substitution  of  substrings  from  the matched expression
#        into the result string is possible using $1, $2, etc.. The
#        macros in the result string may need to be written as ${n}
#        or $(n) if they aren't followed by whitespace.
# 
# EXAMPLE SMTPD ACCESS MAP
#        # Disallow sender-specified routing. This is a must if you relay mail
#        # for other domains.
#        /[%!@].*[%!@]/       550 Sender-specified routing rejected
# 
#        # Postmaster is OK, that way they can talk to us about how to fix
#        # their problem.
#        /^postmaster@/       OK
# 
#        # Protect your outgoing majordomo exploders
#        /^(.*)-outgoing@(.*)$/!/^owner-/         550 Use ${1}@${2} instead
# 
# EXAMPLE HEADER FILTER MAP
#        # These were once common in junk mail.
#        /^Subject: make money fast/     REJECT
#        /^To: friend@public\.com/       REJECT
# 
# EXAMPLE BODY FILTER MAP
#        # First skip over base 64 encoded text to save CPU cycles.
#        ~^[[:alnum:]+/]{60,}$~          OK
# 
#        # Put your own body patterns here.
# 
# SEE ALSO
#        pcre_table(5) format of PCRE tables
# 
# AUTHOR(S)
#        The regexp table lookup code was originally written by:
#        LaMont Jones
#        lamont@hp.com
# 
#        That code was based on the PCRE dictionary contributed by:
#        Andrew McNamara
#        andrewm@connect.com.au
#        connect.com.au Pty. Ltd.
#        Level 3, 213 Miller St
#        North Sydney, NSW, Australia
# 
#        Adopted and adapted by:
#        Wietse Venema
#        IBM T.J. Watson Research
#        P.O. Box 704
#        Yorktown Heights, NY 10598, USA
# 
#                                                   REGEXP_TABLE(5)
