CL-PPCRE is a portable regular expression library for Common Lisp
which has the following features:

It is compatible with Perl. (Well - as far as you can be
compatible with a language defined by its ever-changing
implementation. As of December 2002, CL-PPCRE is more
compatible with the regex semantics of Perl 5.8.0 than, say,
Perl 5.6.1 is...:) It even correctly parses and applies Jeffrey Friedl's
famous 6600-byte long RFC822 address pattern.

It is fast. If compiled with CMUCL it outperforms Perl's highly optimized regex engine (written
in C) which to my knowledge is faster than most other regex engines
around. If compiled with CLISP it is still comparable
to CLISP's own regex implementation which is also written in
C.

It is portable, i.e. the code aims to be strictly ANSI-compliant. If
you encounter any deviations this is an error and should be
reported to the mailing list.

It is thread-safe. Although the code uses closures
extensively, no state which dynamically changes during the scanning
process is stored in the lexical environments of the closures, so it
should be safe to use CL-PPCRE in a multi-threaded program. Tests with
LispWorks and Scieneer Common Lisp seem to confirm this.