Limitations & Known Issues

Versioning

REL version number follows the Semantic Versioning 2.0 Specification. In the current early stage of development, the API is still unstable and backward compatibility may break. As an additional rule, in version 0.Y.Z, a Z-only version change is expected to be backward compatible with previous 0.Y.* versions. But a Y version change potentially breaks backward compatibility.

DSL

There is no representation in the DSL for specific character ranges nor raw strings.

The string primitives are not parsed (use esc(str) to escape a string that should be matched literally). Hence:

Flavors

The Group names are checked but not inlined silently if they fail the validation, or if they are duplicated when the flavor requires unicity.

\uXXXX is not supported by PCRE, yet not translated by PCREFlavor so far.

JavaScript regexes are quite limited and work a bit differently. In JavaScript flavor:

Cleaners

Not all Unicode ligatures and variations are known to DiacriticCleaner, for example:

TrackString

Regex replacement in TrackString do not support Java 7 embedded group names, which are not accessible in Scala’s Match yet. It will use Scala group names instead (inconsistent with String#replaceAll).

TrackString cannot track intertwined/reordered replacements, i.e. you can only track abc => bca as a single group (as opposed to three reordered groups). If out-of-order Repl/Subst are introduced, srcPos will most probably yield incorrect results.

TODO

The following would be useful: