Regex Engine Replacement

From Codepoint

The regular expression engine in the MOO server has been replaced with PCRE in order to provide support for Unicode. The patches to do this are found in Rob’s unicode branch, beginning at commit c18c38ff.

Although PCRE is an improvement over the prior implementation, it nonetheless has the following issues:

  • Case-insensitive matching does not respect canonical equivalence.
  • Case-insensitive matching is supported only when there is a one-to-one mapping between a letter’s cases. For example, ‘ß’ will not match ‘ss’.
  • Backreferences are not matched case-insensitively except in the case of ASCII.