I am not advocating for PCRE in particular, I just need a regex engine that is just as powerful. I guess re2 serves that purpose, although I haven't used it myself (knowingly). Looking at https://github.com/google/re2/wiki/WhyRE2 <https://github.com/google/re2/wiki/WhyRE2>, re2 actually seems to be a good target. "match time is linear in the length of the input string", sounds like a really nice property.
On 5 Feb 2019, at 12:26, Richard O'Keefe <raoknz@gmail.com> wrote:
Please DON'T move to PCRE. "Outside world standards"? There are so many. There are two important things to know about PCRE: (1) it is a popular open source regexp library for Perl-style regexps, (2) because of that, it is prone to truly horrendous performance problems. There are alternatives, such as re2, https://github.com/google/re2 <https://github.com/google/re2> , which are not subject to PCRE's intrinsic performance pathologies. As it happens, re2 supports *? +? and ??.
On Tue, 5 Feb 2019 at 20:34, Esteban Lorenzano <estebanlm@gmail.com <mailto:estebanlm@gmail.com>> wrote: Hi,
Yes, Pharo regex implementation is very naive. We will be moving to a PCRE binding to match outside world standards but we have not had the time to work on it :(
Esteban
On 5 Feb 2019, at 00:27, Manuel Leuenberger <leuenberger@inf.unibe.ch <mailto:leuenberger@inf.unibe.ch>> wrote:
Hi,
I just noticed that the Pharo regexes do not understand non-greedy matches. A regex engine to be PCRE is kind of essential, not having '.*?' to be a parseable and working regex is a bummer. Are there any more powerful regex engines around for Pharo? I could not find any.
Cheers, Manuel