What's New in This Release:
· Command line: -flavor and -flavorreplace to set the regular expression and replacement text flavors.
· Setup: Create Portable Installation directly from the self-extracting setup. The Install on Removable Drive menu item in the Help menu was renamed for consistency.
· Use: PHP code snippet using preg_replace_callback().
· Use: wxWidgets C++ source code snippets.
· Create: Export to HTML now resizes the tree to make it fit the browser window.
· Forum: When attaching/downloading a test subject, also set the test scope. The file type will now say "RegexBuddy test subject" instead of "Text file" for attachments with scope information. "Text file" attachments can still be opened. RegexBuddy 3.1.0 and prior will not know how to handle "RegexBuddy test subject" attachments. They will indicate them as "Unknown".
· Test: Preserve the status of the "update automatically" setting when the option to preserve the test subject is turned on in the preferences. The command last used is not remembered, so you still need to select a command like List All for automatic updating to begin.
· Use: Backslashes that needlessly escape literal characters such as % are now automatically stripped from the regular expression in the source code snippet.
· Copy/Use: If a regular expression contained an escaped forward slash, RegexBuddy escaped the backslash when formatting the regex as a JavaScript or Ruby // operator.
· Create: ca through cz (lowercase) were explained as matching characters 33 to 58 instead of 1 to 26. RegexBuddy did match these correctly on the Test tab.
· Create: A quantifier on a capturing group inside lookbehind was not marked as an error for flavors that do not support (infinite) repetition inside lookbehind. (?<=(.)*) should show the same error on the Create tab as (?<=.*) for flavors like Java
· Create: Export to HTML now properly formats free-spacing regular expressions.
· Create: The Alternation item in the Insert Token menu was disabled for the GNU BRE flavor, which supports alternation through |.
· Flavors: For Perl and Python, which only support fixed-length lookbehind, RegexBuddy now treats alternation inside lookbehind as an error, like Perl and Python do.
· Flavors: Python and PCRE do not allow two named capturing groups to use the same name, unlike the .NET and JGsoft flavors. RegexBuddy now emulates this restriction for Python and PCRE.
· Flavors: RegexBuddy did not emulate the fact that the .NET engine treats _ as an error. Most regex flavors treat escaped letters that don't form a metacharacter as an error, but treat an escaped underscore as a literal. The .NET flavor treats the underscore like a letter.
· Flavors: RegexBuddy required all literal hyphens inside character classes to be escaped for flavors that treat [d-z] as an error (since 3.0.4). This was overly restrictive. E.g. [---] is still valid with these flavors.
· GREP: In Match mode, when the target option was set to save results, search terms would appear duplicated in RegexBuddy (but only once in the actual file).
· Library: Don't delete test results when clicking on another regex in the library.
· Library: Using the test subject from a library regex did not properly set the test scope stored in the library on the Test tab.
· Regex: X to match a Unicode grapheme was not backtracked properly, causing a regex like X+a to fail on graphemes consisting of more than one Unicode code point. This could only happen on Unicode files that use combining marks, which is rare.
· Regex: A regex that started with a lookbehind immediately followed by an infinitely repeated dot would fail to match on the Test tab if "dot matches newlines" is on.
· Regex: Conditionals referencing a capturing group defined after the conditional and without a "then" part did not work correctly (new feature in 3.1.0).
· Regex: Mode modifiers using the (?i) syntax did not work correctly inside lookaround.
· Regex: RegexBuddy's regex engine did not detect catastrophic backtracking when the regex (a|aa)+b is applied to a long string of a characters.
· Test: A character class range between the same character like [a-a] was marked as an inverted range. Though [a-a] makes no sense, it is valid and equivalent to [a].
· Test: If a regex started with consecutive literal characters, like bbc or b{2}c, RegexBuddy would match them incorrectly if the test subject used a character encoding that uses a variable number of bytes per character (like UTF-8 or DBCS).
· Test: List All Group Matches in Columns did not indicate named capturing groups in the header.
· Test: RegexBuddy would sometimes lock up when editing the test subject while a "list all" or similar command was still busy with the test subject.
· Test: Testing a regex with an empty alternative like one||three caused an error about an empty alternative. Though empty alternatives don't make sense, they're not an error. The Create tab and syntax highlighting will still show a warning.
· Use: When converting quantifiers using curly braces inside lookaround and checking support for variable and infinite repetition, RegexBuddy treated variable quantifiers like {1,3} as infinite like {3,} and vice versa... [
read full changelog ]