procmail
[Top] [All Lists]

Re: parentheses vs. brackets

1998-10-20 12:05:56
"David W. Tamkin" <dattier(_at_)Mcs(_dot_)Net> writes:
When I suggested code including this condition,

| >  * ^^( |   |$)*unsubscribe$

Dr. Daia replied,

|     On a completely unrelated topic, doesn't procmail use fastmaps to
| handle [...] constructs?  If it does, then [         ] (that's a space and a
| tab) will be slightly more efficient than ( |        ).

Given that we also need to allow for newlines, bracketing the space and
the tab will not get rid of the parentheses nor the other pipe, so we'd
still have that level of interpretation.  It is not [  ] vs. ( |       )
here but ([    ]|$) vs. ( |    |$).

So it may not be cut-and-dried.

Actually, it still is.  The 'or' construct in regexps is internally a
binary operation, so that (a|b|c) will be handled as if it was
((a|b)|c).  Eliminating one of the branches in the graph that the NFA
walks across by writing that as ([ab]|c) will thus still be a gain.


Philip Guenther