Jakarta Regexp History of Changes This document reflects the changes between releases for the Jakarta Regexp package. ### Version 1.5 (18 Mar 2007) Fixed Bug 36405: Referencing an optional backreference returns null (VG) Implemented optimization: RE compiler omits branch instruction if only one branch is present (VG) Fixed Bug 9153: {m,n} implementation had exponential complexity (VG) Fixed Bug 27763: RE incorrectly processed reluctant matchers (VG) Fixed Bug 38331: RE compiler creates incorrect program if pattern results in large program with offsets exceeding capacity of the short (VG) Fixed Bug 37275: RE incorrectly processes nested {n,m} closures (ex: (A{1}){0,2}) (VG) Added accessor for REProgram.prefix (VG) ### Version 1.4 (17 Aug 2005) Fixed Bug: RE creates wrong character class when overlapping character ranges are used (ex: [a-h0f-z]) (VG) Fixed Bug 30126: Support negated character classes (\W, \D, \S) in custom character class (VG) Applied patches for Bug 27795: Add optimization for regexps which start with ^ (BOL) (VG) Fixed Bug 25985: In MATCH_MULTILINE mode $ does not match end of line (VG) Fixed Bug 2121: '.' or '-' in bracket expression gives unexpected results (VG) Regexp is relicensed to Apache License, Version 2.0 (VG) Fixed Bug 2525: Leading zero-length string splitted by RE (VG) Applied patches for Bug 4137: Regexp match gets different results on different platforms (VG) Applied patches for Bug 3303: Unicode 3.0 character \\uFFFD (VG) Applied patches for Bug 3773: Problem with parsing greedy match modifiers (VG) Applied patches for Bug 3273: CharacterArrayCharacterIterator docs and implementation mismatch (VG) Fixed Bug 22928: subst() with REPLACE_BACKREFERENCES cuts first 2 characters (VG) ### Version 1.3 (2 Sep 2003) Fixed Bug 22804: ArrayIndexOutOfBoundsException on negated classes (VG) New Feature: subst() can now process backreferences when flag REPLACE_BACKREFERENCES is set. See API docs for details. Patch provided by Tobias Schaefer. (VG) Applied patches for Bug 16592: Syntax error: Too many bracketed closures (limit is 10) (VG) Fixed Bug 5212, aka 14954: A bug caused by '-' in character class definition ('[...]') (VG) Fixed Bug 4057: \w does not match underscore (VG) Fixed Bug 1030, aka 10893: {n.m} notation work incorrect if n=0 (VG) Re-visited Bug 3879: Expressions using {0,n} match 0 to n+1 times instead of 0 to n times. Now, expression "[a-z]{0,3}" matches "123abcdefg123" resulting in "" (empty string). (VG) Fixed Bug 306: Why is the RE class not Serializable? (VG) Applied patches for Bug 3879: Expressions using {0,n} match 0 to n+1 times instead of 0 to n times. (JSS) Applied patches for Bug 7288: Bug in negative character ranges. (JSS) Applied patches for Bug 986: Leading "\b" word boundary is ignored. (JSS) Applied patches for Bug 3877: {n} and {n,m} not thread safe. (JSS) Applied patches for Bug 8467: Number of paren pairs limited to 16 (JSS) Fixed RE.grep() documentation to reflect a String[] is returned instead of an Object[]. New Feature: Clustering (i.e. non backref'd grouping) Rebuilt website with latest Jakarta-Site dependency ### Version 1.2 (27 Nov 2000) Updated to Ant 1.2 (JSS) Documentation now built with Anakia (JSS) Fixed bug Fixed bug: StringIndexOutOfBoundsException if paren is empty Fixed bug: Case independent flag does not work in prefix optimization code New Feature: Added flag MATCH_SINGLELINE - newlines are matched by '.' ### Version 1.1 (14 May 2000) Contributions by Ales Novak: RECompiler.compile() - copy on return RE.matchNodes() - BOL and EOL cases if RE.MATCH_MULTILINE is specified. - Think of RETest.java which prints MATCH!!!: ...... two times while in the older version only one time. RE.java also contains an extension which allow to parse InputStreams, Readers and char arrays in addition to Strings. All needed modifications are only in the RE class. Contributions by Jon S. Stevens: Fix in the build system for building on NT Documentation fixes / additions ### Version 1.0 Repackaging from original contribution. No major code changes.