Ralf Hildebrandt:
> * Wietse Venema <wie...@porcupine.org>:
> > Patrick Ben Koetter:
> > > I have a question regarding the "Bounce-never mail sink" regexp:
> > > 
> > > postconf(5) gives this example:
> > > 
> > >            /^(RCPT\s+TO:.*?)\bNOTIFY=\S+\b(.*)/ $1 NOTIFY=NEVER $2
> > > 
> > > Isn't there a '>' missing before the '?'. As I understand it the '?' 
> > > makes the
> > > preceeding character optional e.g. example.com and example.co would match.
> > > Shouldn't the '>' be optional instead and it is missing in the examples 
> > > above.
> > > 
> > > My example here demonstrates the regexp as I would expect it:
> > > 
> > >            /^(RCPT\s+TO:.*>?)\bNOTIFY=\S+\b(.*)/ $1 NOTIFY=NEVER $2
> > 
> > If you believe that there is a problem, you need to demonstrate it
> > with the postmap command. Note: the example is PCRE not REGEXP.
> 
> I think for the general case the original PCRE expression is working.
> But if I want to use this "trick" for specific recipient domains, then
> it starts to change into something more complicated (?)_
> 
> /^(RCPT\s+TO:.*@recipient\.com\.invalid>?)\bNOTIFY=\S+\b(.*)/ $1 NOTIFY=NEVER 
> $2
> 

The ? does not do what you guys are thinking.  The .*? turns on
lazy matching. Without this, .* would also match \bNOTIFY=\S+\b(.*)
and that is not what we want.

http://en.wikipedia.org/wiki/Regular_expression#Lazy_quantification

        Wietse

Reply via email to