[erlang-questions] builtin regexp functions in Erlang/OTP R12B-3
Mats Cronqvist
mats.cronqvist@REDACTED
Mon Jun 16 17:08:20 CEST 2008
Robert Virding wrote:
> All I can say is that I agree with Richard but expand more on it the EEP.
>
> One quick comment is that I wonder if not part of the problem with
> PCRE and Perl regular expressions is that in one respect they are
> integrated into Perl and contain features to interact with the rest of
> Perl. If I remember correctly, for example, you can set Perl variables
> directly from the RE. Is this what became the named subexprs in PCRE?
AFAIK, perl does not use PCRE as its regexp engine. the PCRE wikipedia
entry says;
"The name is misleading, because PCRE is Perl-compatible only if you
consider a subset of PCRE's settings and a subset of Perl's regular
expression facilities."
IMO, the main problem with PCRE is that it allows backreferences. as
so eminently described by Russ Cox (*), this is an NP-complete problem.
Cox says;
"The simplest, most effective strategy for backreferences, taken by
the original awk and egrep, is not to implement them."
then he goes on to argue the opposite point;
"This strategy is no longer practical: users have come to rely on
backreferences for at least occasional use, and backreferences are part
of the POSIX standard for regular expressions
<http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html>."
i think not allowing backreferences is the correct choice for erlang.
after all, erlang is about reliability. and it seems not being
POSIX-compliant has worked for 20 years.
OTOH, as is pointed out in EEP-11, PCRE has many nice features. but i
vaguely remember that there was a flag that turned off backreferences....
mats
p.s. there was a mail thread a couple of years ago, where i argued that
a linking in PCRE was the way to go. we even implemented it, as a BIF (2).
(1) http://swtch.com/~rsc/regexp/regexp1.html
(2) http://www.erlang.org/pipermail/erlang-questions/2006-July/021556.html
More information about the erlang-questions
mailing list