From: Matthew Flatt <mflatt@cs.utah.edu> To: plt-scheme@list.cs.brown.edu Subject: [plt-scheme] 352.6 Date: Tue, 19 Sep 2006 09:10:11 0800 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