On Mon, Mar 29, 2010 at 09:13:31AM -0400, Wietse Venema wrote:
> Louis-David Mitterrand:
> > Hi,
> > 
> > I am using an (insanely) long pcre (see below) to reject
> > african/chinese/etc. spam that relays through large ISP's. An now it
> > seems I have reached a limit. When trying to add a single more
> > expression with a set of () parens I get this error:
> > 
> >     postmap: warning: pcre map /etc/postfix/header_access_local, line 2: 
> > too many (...)
> 
> Postfix logs this when pcre_exec() returns a match count of zero.
> According to documentation:
> 
>    If the vector is too small to hold all the captured substring  offsets,
>    it is used as far as possible (up to two-thirds of its length), and the
>    function returns a value of zero. 
> 
> About 10 years ago, someone decided that Postfix needs no more than
> 99 () in a PCRE regular expression. I suppose this is one of many
> things in Postfix that should eventually be made configurable.
> 
> For now, you would have to edit dict_pcre.c, and update the
> PCRE_MAX_CAPTURE constant.

I guess this means the rule can simply by fixed by not capturing anything,
always using: (?:foobar)

Reply via email to