[plt-scheme] 352.6
MzScheme and MrEd are now version 352.6 in the SVN repository trunk.
MzScheme's built-in regexp system now supports the usual collection of
"Perl-compatible" features: numeric quantifiers, backreferences,
character classes, Unicode predicates, case-insensitive mode,
multi-line mode, lookahead, lookbehind, non-backtracking, and
conditionals.
Most of these have been added to the syntax of `regexp' and #rx. Adding
numeric quantifiers, backreferences, character classes, and Unicode
predicates, however, would change the syntax of `regexp' in
backward-incompatible ways. Therefore, those features are accessible
only via `pregexp' or the new #px syntax. I recommend that you use #px
and `pregexp' from now on.
The "pregexp.ss" library in MzLib now re-exports MzScheme's `pregexp'.
A module can import the same identifier multiple times when it's from
the same source, so a module that uses the `mzscheme' language can
still require `(lib "pregexp.ss")'. The other "pregexp.ss" exports are
mostly wrappers for `regexp-' procedures, but the wrappers convert a
string or byte-string pattern using `pregexp' instead of `regexp'.
Other changes:
* Added `regexp-match?', which returns a simple #t when the pattern
matches. This avoids the string allocation of `regexp-match', and it
is more clear than using `regexp-match-positions' to avoid
allocation.
* Improved compilation of `syntax' forms, and changed `syntax' to
preserve the 'paren-shape property for constructed syntax objects.
Also, the ".zo" form is more compact for some syntax objects.
Matthew