Craig Norvell of Franz let me know that ACL has a new regular expression API that is “up to 30% faster than Perl.”
A new fast, Perl-compatible regular expression matcher is now available as a patch to 6.2 and 7.0.beta. The following bullets describe some of the features of the new matcher.
- The new matcher uses Perl syntax, and is nearly feature compatible with Perl. Only a few obscure features have not been implemented.
- Speed: the new matcher was designed to be fast. On the CL-PPCRE test suite (with 1600+ tests) it is on average 30% faster than Perl.
- Regular expressions can use the Unicode character set (UCS-2).
- Named capture for submatches. For example, (match-re "(?<foo>ab)\\k<foo>\\k<foo>" "aabababa") returns the values t, "ababab", and "ab".
The new regular expression module, :regexp2, is modeled on the original regular expression API, using similar symbol names (thus, for example, old: compile-regexp, new compile-re). The symbols naming functions in the new API are in the excl package, just as those in original API are. Both modules can be loaded into the same running Lisp and used independently.
Both APIs are fully documented.Posted by jjwiseman at June 14, 2004 11:16 AM