

Introduction Buy Now Our Guarantee Download Testimonials Contact Us User Forum Screen Shots Live Demos Regular Expressions Features & Benefits Programming C# Delphi GNU BRE & ERE Java JavaScript MySQL Oracle Database PCRE Perl PHP POSIX BRE & ERE PostgreSQL Python REALbasic Ruby Tcl ARE VB6 & VB.NET VBScript wxWidgets XML Schema Linux Press Resources Version History Newsletter Affiliates 




| | RegexBuddy™ Version History Software Quality at Just Great Software Don't let the long lists of issues on this page make you think our products have a lot of problems. Quite to the contrary. All the bugs listed below are bugs that we have fixed. Many of these are corner cases reported by only one or perhaps a handful of our customers. Other software companies often don't spend any effort addressing such issues, much less list them publicly. We take pride in producing high quality software, and often release free updates to ensure you won't have any problems with our software. If you ever hit a snag with RegexBuddy, check here if you have the latest version. If you do, simply report the issue on the forum and we'll help you out as soon as we can. Subscribe to the Just Great Software email newsletter or the Just Great Software RSS newsfeed if you'd like us to notify you of any product updates and other developments. RegexBuddy 3.1.1 - 3 April 2008 New features: - 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.
Improvements: - 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.
Bug fixes: - 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.
RegexBuddy 3.1.0 - 20 December 2007 New features: - Copy/Use: Java string type, which differs from the C-style string type previously used for Java in that it will not put a \ in front of Unicode escapes \uFFFF.
- Copy/Use: JavaScript string type, which differs from the C-style string type previously used for JavaScript in that it will not put a \ in front of Unicode escapes \uFFFF and Latin-1 escapes \xFF.
- Create: Export to clipboard.
- Flavors: GNU BRE and GNU ERE. These flavors are used by the GNU implementations of grep, egrep, sed, awk, etc. which use POSIX BRE/ERE with a few extensions.
- Flavors: The "XPath" flavor is the regex flavor defined in the "XQuery 1.0 & XPath 2.0 Function and Operators" standard. It is used in XSLT 2.0 too.
- Flavors: VBScript replacement text flavor to go along with the JavaScript regex flavor. JavaScript supports \xFF and \uFFFF in string literals, but VBScript does not.
- Forum: Use .rba file extension instead of .xml for regular expressions so they can be saved to file and opened directly into RegexBuddy.
- Insert Token: Easy way to insert mode modifiers. These can be used then the global options aren't available, such as when editing a list of regular expressions for PowerGREP.
- Insert Token: POSIX classes.
- Regex: Forward references (i.e. a backreference to a group defined after it) are now supported. E.g. (\2two|(one))+ will match oneonetwo instead of triggering an error when a flavor that supports forward references is selected.
- Replace: Support Unicode escapes like \uFFFF and \x{FFFF} in the replacement text syntax for those languages that apply such processing to literal strings in code, similar to \r and \n which RegexBuddy already handles.
- Replace: Support hexadecimal escapes like \xFF in the replacement text for flavors that support it, and for languages that do this as part of their string processing.
- Test: Item under the paste button and on the right-click menu of the results to use the test result as the new test subject.
- Test: Option at the bottom of the List All and Replace buttons to automatically update the results of the operation when the test subject or regex change. When this option is off, the results will be automatically cleared, so you won't be confused by old results.
- Test: Option at the bottom of the List All button to show n/a for groups that did not participate in the match at all, rather than showing nothing. This helps differentiate with groups that did participate but didn't capture.
- Test: Save button drop-down menu with an option to save the test results to a file.
Improvements: - Copy/Use: In free-spacing mode, convert a multi-line regex into concatenated strings on multiple lines for C, Java, JavaScript and Pascal (which don't support multi-line strings).
- Copy/Use: Literal tabs and line breaks in the regular expression are no longer converted into \t\r\n for Perl, PHP/preg and Ruby regex operators, as these can span multiple lines.
- Copy/Use: \xFF character escapes are now supported in Python strings.
- Create: Highlight backreferences to undefined capturing groups as errors.
- Create: Highlight forward references to capturing groups as errors for flavors that don't support them.
- Debug: Ctrl+Arrow Left and Ctrl+Arrow Right now jump to the previous/next regex token's match. (Matches from different tokens are highlighted in alternating shades of blue.)
- Debug: Ctrl+Arrow Up and Ctrl+Arrow Down now jump to the previous/next match attempt. (The debugger will only try multiple attempts if you use Debug Till End or Debug Everywhere.)
- Debug: Moving the cursor through the debugger output now automatically selects the corresponding regex token (which also moves the highlight in the debugger), without having to double-click in the debugger.
- Debug: Moving the cursor through the debugger output selects the part of the regex match the cursor points to in the debugger on the Test tab. You'll have to arrange the Test and Debug tabs side by side to benefit from this.
- Debug: Pressing + or - on the keyboard will now fold and unfold match attempts.
- Debug: The debug display's internal mechanism was redesigned from scratch. The visible portion of the display is now built on-the-fly, resulting in a dramatic reduction of memory usage.
- Debug: The debugger's limitation of 100,000 steps now only kicks in between match attempt when using Debug till End or Debug Everywhere. Single match attempts will now display all steps that the regex engine attempted. The regex engine's internal backtracking limitations still apply. However, these are far higher than the 100,000 steps debug limit.
- Debug: The header indicating the start of the match and the footer indicating success or failure for each match attempt now stay put against the left margin when scrolling the debugger horizontally.
- Debug: The left margin now displays match attempt and match step numbers instead of debugger line numbers. This makes it easy to count the steps when using Debug till End or Debug Everywhere.
- Forum: Searching the forum no longer filters out messages that are being composed, so you can search without losing track of what you're writing.
- History: Clearing the history no longer changes the regular expression flavor back to JGsoft.
- Test: Match highlighting is now updated much faster when typing at the end of the test subject when the scope is set to "line by line" or "page by page".
- Use: Multi-line regular expressions and replacements are now placed on separate lines and indented (as long as the extra whitespace is ignored).
- Use: Numbered backreferences are now properly renumbered if needed (e.g. if .NET named groups and numbered groups are mixed and the target flavor does not support .NET named capture).
- View: Changing layouts is now faster, with much less flickering.
- View: Changing layouts now makes all toolbars visible again.
Bug fixes: - C# code snippet "Use regex object to replace all matches in a string" incorrectly specified the matching options.
- Copy/Use: If the replacement text contained non-printables like \r\n\t, copying or using the replacement as a PostgreSQL stirng resulted in an empty string being copied or inserted.
- Create: A literal hyphen at the end of a character class was incorrectly highlighted as an error for some regex flavors (3.0.5 only). The Test tab did handle these correctly.
- Create: A quantifier separated from its token by a comment was marked as an error. The Test tab did correctly ignore the comment and apply the quantifier to the preceding actual token.
- Create: Java-style negated POSIX classes like \P{Digit} are now correctly indicated as being negated in the regex tree.
- Create: The regex tree stripped off the last character of unclosed comments. It was marked as the closing bracket in the regex highlighting.
- Flavors: Backreferences were handled incorrectly on the Test tab when the POSIX BRE flavor was selected. The regex \(a\)\1 would match aa1 instead of aa.
- Flavors: Java strips unescaped backslashes from the replacement text; RegexBuddy did not do this on the test tab when the Java flavor is selected.
- Flavors: JavaScript and Ruby allow backreferences to non-existent groups. These always result in a zero-width match. While RegexBuddy simulates the JavaScript and Ruby behavior on the Test tab, it will still highlight these as an error on the Create tab, as referencing a non-existent group is pointless.
- Flavors: POSIX BRE uses \( and \) for capturing groups. RegexBuddy's regex syntax highlighting highlighted ( and \) rather than \( and \).
- Flavors: REALbasic strips unescaped backslashes from the replacement text (RegexBuddy left them as literals with the REALbasic flavor selected).
- Flavors: REALbasic's treatment of unescaped dollar signs that aren't part of a valid replacement text token seems to be erratic. RegexBuddy will now flag them as errors.
- Flavors: Tcl does not support \z.
- Flavors: The JGsoft flavor always skips zero-width matches at the same position where a previous match ended, while other flavors only do so if the previous match is also zero-width. RegexBuddy now correctly emulates the other flavors. Replacing \d* with x in 123rn456rn789 yields xrxnxrxnx with the JGsoft flavor and xxrxnxxrxnxx with other flavors.
- Flavors: The POSIX BRE flavor treats the syntax for lookbehind and named capture in other flavors as literal text rather than as an error.
- Forum: The Source Code Templates submenu under the Add Attachments button never listed any templates to attach; it should list all custom-created templates.
- GREP: If RegexBuddy was in Match mode, and you previously entered a replacement text in Replace mode, a grep action to save matches into a file would save the replacement text rather than the search match.
- GREP: Setting the target to save results to file and then specifying an invalid target file caused an access violation. Now, the GREP command will be disabled until you type in a valid path or choose not to save the results.
- History: Switching between two regular expressions that are identical other than the selected flavor does not cause the highlighting to be updated.
- Integration: Clicking the Send button when the regular expression is blank caused an access violation when no library is opened.
- Regex: A lookaround inside a capturing group at the very start of the regex caused RegexBuddy to crash (3.0.x only).
- Test: Unclosed (?#...) comments did not trigger an error.
- Use: Comments were not stripped from the regex if the original flavor selected in the main toolbar supports comments, but the target flavor on the Use tab doesn't.
- Use: If the source flavor was POSIX BRE, which treats ( and ) as literal characters, and the target flavor uses ( and ) for grouping, then a literal ) was dropped from the regex instead of being converted into \).
- Use: Perl and Ruby syntax highlighting now supports regular expressions that span multiple lines.
RegexBuddy 3.0.5 - 24 September 2007 Bug fixes: - Contents of various panels are invisible until RegexBuddy is resized or a splitter between the panels is moved (3.0.4 only).
- Create: For regular expressions using the POSIX BRE flavor, backreferences like \1 were followed by an extraneous literal text node in the Create tree.
- Flavors: Octal escapes are not supported by JavaScript regular expressions according to the ECMA-262 standard for JavaScript. Though most browsers do support them, RegexBuddy will now flag octal escapes as unsupported by JavaScript. On the Use tab, octal escapes will be converted into hexadecimal ones. E.g. \0377 becomes \xFF.
- Flavors: RegexBuddy did not always treat backslashes inside POSIX bracket expressions as literal characters.
- Forum: Deleting the message in an unposted (i.e. new) conversation left behind an empty conversation that had to be deleted separately.
- GREP: Right-clicking on a highlighted match and selecting an external editor to open file file causes a View/Preferences/Help popup menu to appear that cannot be dismissed (3.0.4 only).
- Regex: Conditionals without a "then" part like (?(1)|else) or even (?(1)) were not handled properly on the Test tab. (?(1)|else) finds a zero-width match if the capturing group participated in the match, or tries to match "else" otherwise. (?(1)) acts like an assertion that matches if the capturing group participated in the match.
- Regex: The change in version 3.0.4 to allow free spacing in character classes for the Java flavor caused the character class [ ] that should match a single space in free-spacing mode in all other flavors to treat the closing bracket as a literal character.
- Test: Using the List All/Replace All/Split commands with a regular expression that has capturing groups on a very long test subject while match highlighting is turned on sometimes caused RegexBuddy to crash.
- Use: When generating Perl code snippets, named capturing groups in the regular expression (written for a flavor other than Perl) are now converted into numbered capturing groups. Perl 5.8 does not support named capture.
RegexBuddy 3.0.4 - 4 September 2007 New feature: - Test: Line Break submenu in the right-click menu of the test subject with items that indicate the line break style being used and that can change the line break style.
Improvements: - Create: The regex tree now warns that if you put a quantifier directly after a \Q..\E sequence, only the last character is repeated.
- Create: Warn about empty alternatives at the end of a group or regex.
- Create: When exporting the regex tree into a text file, RegexBuddy now uses UTF-8 rather than the default Windows code page to save the text file. (When exporting to HTML, RegexBuddy already used UTF-8.)
- Forum: Option to receive email notifications for all posts, regardless of participation.
- Library: The regular expression flavor for the selected library regex is now indicated along with the matching modes above the regular expression.
- Test: Significantly reduced memory usage when highlighting very large numbers of regex matches and/or very long regex matches.
Bug fixes: - Create: Character class ranges that had either or both ends specified with an octal escape were often erroneously marked as being reversed.
- Create: Java syntax for POSIX-alike character classes like \p{Alpha} was not handled properly in the regex tree if it was used outside a character class. (Real POSIX classes like [:alpha:] can only appear inside a bracket expression, e.g. [[:alpha:]]. In Java, [\p{Alpha}] and \p{Alpha} are equivalent.) RegexBuddy treated the token as being inside a character class, resulting in character class syntax coloring and errors when quantifiers were used.
- Create: Octal escapes were not indicated with an error in the regex tree if a regex flavor that doesn't support them was selected.
- Create: The regex tree indicated [\d-c] as a range consisting of the shorthand \d and the literal "c" rather than a shorthand \d and two literals "-" and "c" as this is actually interpreted.
- Create: The regex tree now correctly indicates that the .NET flavor does not support \Q..\E sequences.
- Create: \B inside a character class was not indicated with an error in the regex tree if the regex flavor wasn't Tcl ARE.
- Flavors: .NET allows (?(?=conditional)yes|no) to be written as (?(conditional)yes|no).
- Flavors: Backreferences in the JavaScript regex flavor match an empty string if the referenced capturing group didn't participate in the match attempt (instead of failing to match like most other regex flavors).
- Flavors: Java ignores whitespace and comments in character classes in free-spacing mode.
- Flavors: Most flavors treat [\d-c] and/or [c-\d] as a syntax error instead of treating the - as a literal like the JGsoft and PCRE flavors. RegexBuddy now emulates this.
- Flavors: Shorthand character classes \d, \w and \s now adapt to the selected regex flavor; i.e. some flavors include Unicode characters, while others don't.
- Flavors: Word boundary tokens now adapt to the selected regex flavor; some flavors use Unicode properties while other flavors use strictly a-z0-9_ to detect word boundaries.
- Forum: When RegexBuddy was launched from EditPad or PowerGREP, you accessed the forums, then closed RegexBuddy and launched it again from the same EditPad or PowerGREP instance, trying to use the forum would cause access violation errors.
- GREP: Clicking the PowerGREP button caused PowerGREP to open with the regular expression from RegexBuddy, but also display an error about an incorrect command line parameter.
- Library: Hyphens forming character class ranges were highlighted in red (3.0.3 only).
- Regex: RegexBuddy now correctly emulates the Perl and PCRE behavior of only repeating the last character in a \Q..\E sequence if you put a quantifier directly after the \E.
- Regex: Typing in a character class containing \s (resulting in an unclosed character class with \s during typing) with the Highlight button turned on would cause \s and \S to fail to match properly for the rest of the RegexBuddy session (3.0.x only).
- Regex: When "^$ match at line breaks is" is turned on, an unalternated ^ at the start of the regex would match at the start of the match attempt instead of after the line break if the line break after the match attempt was a sole \r (Mac-style line break).
- RegexBuddy would fail to start with an access violation if the history of regular expressions could not be read from the registry.
- Test: Closing RegexBuddy while the Test pane was still highlighting matches in the background caused RegexBuddy to crash.
- Test: Find Next would stay stuck at the second match when highlighting was off (3.0.3 only).
- Test: Switching between text and hexadecimal mode did not properly redraw the text or keep the cursor at the same character position.
- Test: Switching from hexadecimal to text mode caused an access violation if the test subject was longer than 64K.
RegexBuddy 2.4.3 - 4 September 2007 Improvement: - Test: Significantly reduced memory usage when highlighting very large numbers of regex matches and/or very long regex matches.
Bug fixes: - Create: Character class ranges were not indicated correctly (2.4.2 only).
- Regex: Typing in a character class containing \s (resulting in an unclosed character class with \s during typing) with the Highlight button turned on would cause \s and \S to fail to match properly for the rest of the RegexBuddy session (2.4.x only).
- Regex: When "^$ match at line breaks is" is turned on, an unalternated ^ at the start of the regex would match at the start of the match attempt instead of after the line break if the line break after the match attempt was a sole \r (Mac-style line break).
RegexBuddy 3.0.3 - 18 July 2007 New feature: - Replacement: Insert Token item in the right-click menu of the box for entering the replacement text, with commands to insert literal text, backreferences, and match context. This feature was mistakenly omitted from version 3.0.0.
Improvement: - GREP: If any errors occur, display a second results box with the error messages just like PowerGREP does.
Bug fixes: - Command line: The -getfromclipboard command line parameter caused a history item to be duplicated when the option to preserve the history was turned on.
- Flavors: Lookbehind is limited to fixed-length strings in Perl and Python, rather than to finite-length strings like Java and PCRE.
- Flavors: RegexBuddy allowed character class ranges to be specified in reverse order, e.g. [z-a] instead of [a-z], even though most regex flavors don't allow this.
- Forum: Proxy settings were not saved unless a change was made to RegexBuddy's preferences after changing the proxy settings.
- GREP: Target drop-down list was not updated when changing the mode between Match and Replace.
- Regex: ((?:abc)+) was optimized into (abc)+ which is not the same (the former captures all iterations; the latter only the last one) (3.0.x only).
- Regex: In free-spacing mode, RegexBuddy did not allow whitespace between a quantifier and the ? or + that follows it to make the quantifier lazy or possessive.
- Regex: In free-spacing mode, RegexBuddy did not properly handle space between a token and quantifiers using the curly braces syntax.
- Regex: Octal escapes inside character classes caused an access violation.
- Test: The Find First, Find Next (when highlighting is off), List All and Split buttons would highlight the characters in the replacement text rather than in the regular expression, or show an error that it could not activate an invisible window.
- Use: Editing or downloading templates sometimes got RegexBuddy stuck on "list index out of bounds" errors.
- Use: The | operator was missing from the "string literal with RegexBuddy's regex tree" code snippets.
RegexBuddy 2.4.2 - 18 July 2007 Bug fixes: - Debug: Debugging a regular expression with a single token in a capturing group like (.*) caused an access violation (2.4.x only).
- Regex: ((?:abc)+) was optimized into (abc)+ which is not the same (the former captures all iterations; the latter only the last one) (2.4.x only).
- Regex: Octal escapes inside character classes caused an access violation.
RegexBuddy 3.0.2 - 1 July 2007 RegexBuddy 3.0.0 and 3.0.1 stopped working on July 1st, because we stupidly forgot to remove the timeout from the beta test. Beta test versions will stop working on a certain date, but release versions will work forever. Version 3.0.2 will never expire. RegexBuddy 3.0.1 - 29 June 2007 Improvements: - Forum: Remember the forum that was last accessed.
- Forum: The message filter box now advertises itself with a "search here" label.
Bug fixes: - Debug: The debugger now takes the scope setting on the Test tab into account.
- Forum: Attachments disappeared from the interface (but not from the actual forum) upon editing a message.
- Preferences, Editor: Selecting a font for the Create tree had no effect.
- Regex: Capturing groups inside negative lookaround did not work. This also caused the debugger to fail on regexes with negative lookaround. (Versions 2.4.0 and 3.0.0 only)
- Regex: Certain cases of catastrophic backtracking were not detected, causing RegexBuddy to keep on trying the regex far too long. This occurred in versions 3.0.0 and 2.4.0 only. We did intentionally relax RegexBuddy's catastrophic backtracking detection to allow more complicated and/or very long matches to succeed. This fix does not change that.
- Template Editor: Help toolbar button didn't do anything.
- Test: After turning on the Highlight button, the highlighting sometimes would not appear until you edited the regular expression (3.0.0 only).
- Test: Highlighting did not disappear when the regular expression became invalid (3.0.0 only).
- Test: RegexBuddy did not allow the test subject to be edited after you opened a file that has its read only attribute set.
- Test: RegexBuddy failed to preserve the test subject if it wasn't modified since RegexBuddy was last started.
- Test: The Find First button only searched the first test subject if the scope was "page by page" or "line by line". Now it will search all scopes from the beginning until it finds a match.
RegexBuddy 2.4.1 - 29 June 2007 Bug fix: - Regex: Capturing groups inside negative lookaround did not work. This also caused the debugger to fail on regexes with negative lookaround. (Versions 2.4.0 and 3.0.0 only)
- Regex: Certain cases of catastrophic backtracking were not detected, causing RegexBuddy to keep on trying the regex far too long. (Versions 3.0.0 and 2.4.0 only)
RegexBuddy 3.0.0 - 13 June 2007 New features: - COM interface: Debug method to show the debugger output at a particular byte position in the test data.
- COM interface: InitAction and FinishAction can now pass a list of actions to populate and retrieve the whole History list. The caption of the History panel will change to "List for appname" when InitAction is used this way.
- COM interface: New variant structure with FreeSpacing and Flavor fields.
- COM interface: ability to specify test data or the path to a test file to be loaded into the Test tab.
- COM interface: function to disable certain options; e.g. EditPad Pro and PowerGREP force the JGsoft regex flavor with "^$ match at line breaks" turned off.
- COM interface: support for additional programming languages when passing regular expressions as strings.
- Command line interface: -testclipboard parameter to paste the contents of the clipboard into the Test tab.
- Command line interface: -testfile parameter to load a file into the Test tab.
- Command line interface: Additional parameters for passing regexes as strings in various programming languages.
- Copy/paste C# strings, which uses verbatim strings when appropriate.
- Copy/paste: Support for all the string styles used by the programming languages newly supported on the Use tab.
- Create: Indicate features used in the regular expression that are available in some flavors, but not in the selected flavor. Double-clicking such an error replaces it with the equivalent syntax (if any) in the selected flavor.
- Debug Everywhere: Runs the debugger at each position in the test subject, rather than only at the current position of the text cursor.
- Debug Till End: Runs the debugger from the current position of the cursor until the end of the test subject.
- Flavors: RegexBuddy now has the unique ability to emulate the limitations of all the regular expression flavors that it supports. Simply select the flavor you're working with on the main toolbar.
- Forum: Discuss and share regular expressions with other RegexBuddy users.
- Fully modular interface: the tabs in RegexBuddy 2 are now panels that can be arranged in tabs, side by side or made to float independently. The layout is automatically remembered between RegexBuddy sessions.
- GREP: Button to open the file in EditPad or another editor instead of the Test pane.
- GREP: Keyboard shortcuts for preview, execute and quick execute like in PowerGREP.
- History: List of regular expressions to easily compare different regular expressions in a single RegexBuddy session.
- Insert Token: Unicode blocks.
- Insert Token: Unicode properties.
- Insert Token: Unicode properties, scripts and blocks can now be added directly when adding or editing character classes.
- Insert Token: Unicode scripts.
- Library: Export without test data and comments but with a unique ID for each regex, so the library can be used as a data file for applications as an alternative to hard-coding regular expressions.
- Library: Store test data with each regular expression.
- Preferences, Editor: Option to toggle word wrap in the "test" editors.
- Preferences: Option to configure whether code snippets on the Use tab use spaces or tabs, and how many, for indentation.
- Preferences: Option to remember the GREP settings.
- Preferences: Option to remember the test data between RegexBuddy sessions.
- Preferences: Regex tree font on the Create page.
- Regex: (?n) explicit capture modifier, as supported by the .NET framework.
- Regex: Ability to select a regex flavor to make RegexBuddy mimic the syntax and limitations of the selected flavor.
- Regex: Character class subtraction, as supported by XML schema and the .NET framework.
- Regex: Dummy support for PCRE callouts (?C1) through (?C255) when the flavor is set to "PCRE".
- Regex: Free-spacing option and (?x) free-spacing mode modifier.
- Regex: POSIX character classes.
- Regex: \Q..\E escape sequence for escaping a string of metacharacters.
- Regex: \cA through \cZ ASCII control characters Ctrl+A through Ctrl+Z; equivalent of \x01 through \x1A; can be used inside and outside character classes.
- Regex: \p{Arabic} through \p{Yi} tokens for matching any character in a particular Unicode script; \p{IsArabic} syntax also supported.
- Regex: \p{InBasicLatin} through \p{InSpecials} tokens for matching any character in a particular Unicode block; \p{IsBasicLatin} and \p{BasicLatin} alternatives also supported; BasicLatin can also be written as Basic_Latin, Basic-Latin and Basic Latin.
- Regex: \p{IsL} and \P{IsL} alternative syntax to \p{L} and \P{L}; using the \p{IsL} syntax is not recommended, as \p{L} has much wider support; RegexBuddy supports it for compatibility with Perl and Java which support both \p{L} and \p{IsL}.
- Regex: \p{^...} syntax as an alternative syntax to \P{...}; using the \p{^...} syntax is not recommended, as only Perl supports it; Perl also supports \P{...}; RegexBuddy only supports it for Perl compatibility.
- Regex: \x{FFFF} alternative to \uFFFF. This syntax is used by Perl. While \uFFFF must always specify 4 hex digits, the \x{FFFF} syntax allows leading zeros to be omitted.
- Replace: Support for $&, $`, $', $_ and $+ and corresponding backslash versions.
- Test: Hexadecimal mode.
- Test: List All option to show all capturing groups in columns.
- Test: List All option to show match details folded under each match.
- Test: List All subitem to list lines or pages without matches when processing the subject line by line or page by page.
- Test: Open a URL to test a regex on the HTML source of a web page.
- Test: Option to process the test subject line by line. This makes RegexBuddy behave like traditional grep, and also makes it easier to test a regex against multiple subjects, one on each line.
- Test: Option to process the test subject page by page, so page breaks can be used to delimit multiple subject strings.
- Test: Save test data into a text file.
- Test: The Replace button now has an option to produce a list of replacements, without the unmatched text.
- Undo and redo buttons that undo changes made to the regular expression and replacement text, either directly or via the Insert Token command.
- Use: Customizable templates to create and edit code snippets for programming languages that use one of the regex flavors supported by RegexBuddy.
- Use: If the regex flavor selected in the main toolbar does not correspond with the regex flavor needed by the programming language selected on the Use tab, RegexBuddy will automatically convert it to the needed flavor, or show an error if it can't.
- Use: MySQL.
- Use: Oracle.
- Use: PostgreSQL.
- Use: String literal with RegexBuddy's regex tree.
- Use: Tcl.
- Use: XML Schema.
Improvements: - Copy/paste: All the different string styles are now listed in submenus, with the string styles corresponding to the selected regex flavor and/or programming language listed directly in the Copy and Paste menus.
- Create: Eliminate duplicates from "match a character in the list" for character classes, to make it clearer that a character class matches characters instead of words.
- Debug: If the only output is backtrack; match attempt failed, explain that the match was only attempted at the current cursor location.
- GREP: .rbg files now use an XML-based format that can be easily created and read in other applications. RegexBuddy 3 can read binary .rbg files saved by RegexBuddy 2, but can only write the new XML-based format.
- GREP: Show the number of matches per file and the clickable file header on one line. This halves the number of lines needed when not showing match details (e.g. after a "quick execute"), and leaves the total visible when collapsing file nodes.
- Insert Token, Anchors: Label the menu items for ^ and $ as "beginning/end of line" and make them turn on the "^ and $ match at line breaks" option.
- Insert Token: ASCII character map now allows you to select the code page to be displayed.
- Insert Token: Unicode character map now indicates code point numbers in a tooltip.
- Library: .rbl files now use an XML-based format that can be easily read in other applications. RegexBuddy 3 can read binary .rbl files saved by RegexBuddy 1 and 2, but can only write the new XML-based format.
- Library: Using a regular expression from the library now keeps the previous regex in the history list, making it easy to revert to it.
- Test: Highlight backreferences in the match details. When double-clicking a backreference, highlight that backreference in the results.
- Use: C# code snippets should use verbatim strings when the regex contains backslashes or free-spacing line breaks.
- Use: Comments with RegexBuddy tree should indicate matching options.
- Use: PHP preg operators now add the /u modifier if your regular expression uses a Unicode token.
RegexBuddy 2.4.0 - 12 June 2007 Improvements: - Copying and pasting the regex as a PHP string is now more conservative with adding and removing backslashes.
- Debug: Matches of anchors and lookaround tokens are now indicated as "ok" in the debugger's output instead of being invisible (as they don't match any text to be highlighted).
- GREP: Detect text encoding based on the HTML Content-Type meta tag.
- Regex: For better compatibility with the next versions of EditPad Pro and PowerGREP, RegexBuddy 2.4.0 uses the new version of the JGsoft regex engine developed for RegexBuddy 3.0.0.
Bug fixes: - Create: The explanations for the dot, caret and dollar now take into account local option groups like (?ms:group).
- Regex: Backreferences to capturing groups that participated in the match but didn't capture anything failed to match at the end of the subject string. E.g. (a?)b\1 failed to match the last b in bbb though it should match all three individually.
- Regex: Backreferences to empty capturing groups that participated in the match always failed. E.g. a()\1 would fail to match a.
- Regex: Lookahead nested inside lookbehind was treated as lookbehind. E.g. (?<=x(?=y)). did not match the y in xy.
- Regex: Redesigned internal backtracking system, to support repeated backtracking of groups nested inside other groups.
- Regex: \xFF and \0377 failed to match in many cases for values greater than \x7F and \0177 depending on the character encoding used in the test subject.
- Test: If the highlighted matches included zero-with matches, the Next button would not advance to the next match if the cursor was at a zero-width match.
- Use: Two Delphi code snippets referenced the non-extistant TPerlRegEx.MatchExpressionCount property instead of SubExpressionCount.
RegexBuddy 2.3.2 - 20 February 2007 Bug fixes: - Create: Explain Token button would open the help file, but not the correct topic (2.3.1 only).
- Use: The ^ to negate a character class was incorrectly changed into \A when using the regex in a Ruby script, when "^$ match at line breaks" is off.
- Vista: Checkboxes and buttons in dialog boxes no longer disappear when you press the Alt key.
RegexBuddy 2.3.1 - 4 January 2007 Improvements: - Help|Install on Removable Drive: Option to force RegexBuddy to treat any drive as a removable drive.
Bug fixes: - GREP: When processing a Unicode file without a byte order marker, the target file sometimes used the default ANSI encoding rather than the Unicode encoding of the source file.
- Regex: The upper limit on a lazy quantifier {m,n}? was not respected; e.g. a{1,3}b would match aaaaab entirely.
- Test: When dropping files onto the Test tab dragged from another application, RegexBuddy always inserted the contents of the first file dropped during the current RegexBuddy session.
- Use: JavaScirpt search-and-replace snippets did not convert \1 in the replacement text into $1.
- Vista: Attempting to invoke RegexBuddy from within EditPad Pro, PowerGREP or AceText would cause the invoking program to lock up, waiting for RegexBuddy to respond. Eventually the calling program would time out and say RegexBuddy is not installed.
RegexBuddy 2.3.0 - 18 September 2006 - New feature: Generate code snippets in REALbasic on the Use tab.
- Improvement: RegexBuddy will now auto-detect Unicode files without a byte order marker when opening them on the Test tab or searching through them on the GREP tab.
- Bug fix: JavaScript code snippet to search-and-replace using a regex object didn't put the /g flag in the correct spot.
RegexBuddy 2.2.3 - 18 July 2006 The GREP button did not work in version 2.2.2. RegexBuddy 2.2.2 - 8 July 2006 New features: - Use: "comment with regex tree inside region" for C#, VB.NET and Delphi for .NET. This style of comment can be collapsed in Visual Studio and most other C# and VB.NET code editors.
- Use: C#/VB.NET/Delphi.NET code snippet to search-and-replace through a string, adapting the replacement to each match using a MatchEvaluator.
Improvements: - Library: If RegexBuddy is launched from another application and the Send button is clicked without a regular expression being entered at the top in RegexBuddy, send the regex from the library to the application.
- Use: Adapt PHP preg regex delimiters to the regular expression, i.e. don't use / as a delimiter when the regular expression contains / characters, so they don't have to be escaped.
- Use: The default parameter names for Java source code snippets now start with lowercase letters.
Bug fixes: - Copy/Use: RegexBuddy incorrectly escaped \ characters in the replacement text in Perl s/// operators.
- Create: Clicking on a node in the Create tree selected one character too many in the regular expression.
- Create: If the regular expression contains an atomic group or option group that is repeated, the regex tree did not show a node indicating the quantifier.
- Create: The Use Backreference item in the Insert Token menu caused an Access Violation error (version 2.2.1 only).
- GREP: None of the items in the drop-down menu of the Open button on the GREP tab worked.
- GREP: Opening a previously saved grep action does not update the items available in the Target list if opening the action requires RegexBuddy to switch from the Match to the Replace tab or vice versa.
- Regex: Doubly nested repeating capturing groups caused RegexBuddy to hang or crash when attempting to try the regex on the Test page.
- Regex: If the regular expression started with a literal character, and that literal character was repeated a fixed number of times with the {n} operator, and the following regex token is another literal character, then RegexBuddy incorrectly expanded the quantifier when applying the "literal start" optimization. E.g. a{2}b would fail to match aab while \w{2}b, a{2}\w and a{2,3}b all matched properly. RegexBuddy optimized a{2}b into (?:aab){2} instead of aab. Note that not all regular expression engines optimize a{2}b into aab, so typing in aab instead of a{2}b is recommended.
- Regex: Negative lookaround containing nothing except one of the anchors ^, $, \A, \z or \Z would match at any position, while it should fail at positions where the anchor matches. This bug was introduced in version 2.0.3 by the fix preventing RegexBuddy from infinitely repeating greedy groups that resulted in zero-length matches, such as in the regular expression (a*)*
- Regex: RegexBuddy did not backtrack repeated atomic groups. E.g. (?>[ab])+b did not match aab as it should. RegexBuddy incorrectly treated (?>group)+b as (group)++b. In (?>group)+ the regex won't backtrack into group, but will backtrack +. In (group)++ neither group nor the + are backtracked. The equivalent of (group)++ using atomic grouping notation is (?>(group)+).
- Use: Java code snippet for iterating over all matches and capturing groups didn't iterate over the last group.
- Use: PHP preg code snippet for getting an array of all regex matches didn't use the Result variable name as entered on the Use tab.
RegexBuddy 2.2.1 - 20 February 2006 New feature: - Test: The List All button now has a drop-down menu allowing you to select a capturing group. This will build a list of that group's matches rather than overall regex matches.
Improvement: - Use: VB6, VB.NET and VBScript do not support \r and \n in the replacement text. These are now substituted with chr(13) and chr(10).
Bug fixes: - Library: The Parameters tab did not pick up parameters that are only used in the replacement text
- Regex: Conditionals without an "else" alternative would fail if the conditional test failed. Since an empty regex always matches, the conditional should match if the "else" part is omitted or empty.
- Regex: Groups with an empty alternative at the end were not made optional, i.e. (a|b|) was treated as (a|b) instead of (a|b)?
- RegexBuddy's regular expression optimizer incorrectly made greedy tokens followed by lookbehind possessive, if the characters matched by the token and the lookbehind are mutually exclusive.
- When run with very restricted privileges (e.g. from a removable disk on a public system), RegexBuddy would show an error message caused by its inability to register as a COM server.
RegexBuddy 2.2.0 - 12 January 2006 New features: - Install on Removable Drive item in the Help menu makes it possible to carry RegexBuddy with you on a removable disk, flash card or USB key. (Windows version only.)
- Use: VBScript language support, using the built-in RegExp object.
- Use: Visual Basic 6 language support, using the VBScript RegExp object.
Improvements: - Debug: Line breaks in the regex matches are now inserted as \r\n instead of actual line breaks. This keeps multi-line regex matches together on a single line in the debugger, making the regex engine's progress much easier to follow.
- GREP: If the Match tab is active and the target type is set to save the output to a file, the GREP button will now show its Preview/Execute/QuickExecute drop-down like it does when the Replace tab is active, instead of automatically doing a Preview.
Bug fixes: - Create: Dragging a regex tree node onto the regular expression caused an access violoation instead of displaying a "cannot drop here" symbol. (Version 2.1.0 only.)
- Debug: Horizontal scroll bar was missing.
- Debug: Line numbers were not shown completely.
- Regex: If a single token was repeated and also made optional in a group all by itself, e.g. (a{3})?, RegexBuddy incorrectly optimized the token as a{0,3} on the Test tab. E.g. the regex ^[a-zA-Z]{2}[0-9]+([a-zA-Z]{2})?[0-9]+ matched AU0159116A5 entirely instead of only matching AU0159116.
- Regex: Initial lookbehind optimization caused regexes with a capturing group inside the initial lookbehind to fail if the capturing group was referenced later in the regular expression. E.g. (?<=<(\w+)>).*(?=<\/\1>)
- Regex: Octal escapes like \037 were not handled properly
- Regex: With "^$ match at line breaks" and "dot matches newlines" turned off, the regular expression $. caused RegexBuddy to get stuck in an infinite loop. Note that this regular expression could never match anywhere. The $ will match before the end of the string, or before the line break at the very end of the string (if any). At this position, the dot could never match, since it requires a character that is not a line break character.
- Use: Perl snippets to extract the text matched by a regex and search-and-replace into a new string didn't work.
- Use: Regular expressions with escaped backslashes (\\) were not properly converted into 4 backslashes when generating PHP preg code.
New documentation: - Example: How to match an email address.
- RegexBuddy: Topic explaining how to benchmark regular expressions with RegexBuddy's debugger.
- Tutorial: Added a practical example to the topic on atomic grouping.
RegexBuddy 2.1.0 - 21 October 2005 New features: - Copy/paste regular expressions as XML (i.e. special XML characters like < encoded as entities like <)
- Preferences: Option to preserve the regular expression and/or test page between RegexBuddy sessions
Improvements: - Copy as Perl-style // operator was replaced with two separate items for JavaScript and Ruby. Though they use the same Perl-style operator, they support different mode modifiers (thereby creating quite a mess).
- Create: When inserting a character class token, you can now click the Clear button to clear all settings on the Character Class dialog box (it defaults to the settings of the last inserted character class).
- Library: Do not truncate the items in the list, so the entire first line of the description can be seen when the list is made wider
- Preserve splitter positions (e.g. between the search/replace/split tabs) between RegexBuddy sessions
- Use: Ruby code snippets with if..else block now add the "end" keyword to the end of the block
Bug fixes: - Copying and pasting from RegexBuddy into another application did not work on Windows 95, 98 and ME (versions 2.0.x only).
- Pasting a PHP operator like '/regex/i' results in "regexi" instead of "regex" with the case insensitive option turned on
- Regex: (?:a|b|c)|d|e was optimized into a|d|e|b|c instead of a|b|c|d|e which would cause the wrong alternative to match if more than one could be matched at the same position
- Use: JavaScript code snippets for matching a string entirely now use ^ and $ instead of \A and \z, since the official JavaScript standard does not support \A and \z (though some JavaScript implementations may support them).
- Use: Ruby code snippets now use /m instead of /s for the "dot matches newlines" options. (Contrary to Perl, which uses /s, Ruby uses /m for this option.)
RegexBuddy 2.0.6 - 11 August 2005 Improvements: - Regex: Empty alternatives in the main regex are now treated as an error. They will always find a zero-width match, effectively truncating the regular expression at that point. This is usually a typing error rather than the user's intention.
- Use: The language and function selection now persists between RegexBuddy sessions. (Note: In version 2.0.6 for Windows, this improvement caused RegexBuddy to incorrectly state that the license information could not be found until you selected another language or function. This issue was corrected in the interim release 2.0.6b, released on August 25th.)
- Use: Java source code snippets now use the boolean primitive type instead of the Boolean class type.
Bug fixes: - Debug and GREP tabs did not have an Alt+digit keyboard shortcut. Right-click on the tabs to get a list with the shortcut for each tab.
- Debug: Selecting the entire regular expression and clearing it with the Debug tab active caused an Access Violation. Now doing so will switching back to the Test tab. This already happened when editing the regular expression with the Debug tab active.
- GREP: Alt+G now starts the grep instead of debugging the regular expression (which should only be possible on the Test tab).
- GREP: Linux: Some of the labels were clipped.
- Regex: A group with an empty alternative such as (|a|b) caused an access violation.
- Regex: Alternation inside capturing groups did not always work properly, e.g. Z([ui]|ue)rich did not match Zuerich. This problem did not occur with non-capturing groups, e.g. Z(?:[ui]|ue)rich worked properly.
- Regex: Due to an over-optimization, (a?) was treated like (a)? where "a" is a single regex token. The difference is that if "a" cannot be matched, \1 will successfully match (nothing) in the first case, but fail to match in the second case.
- Test: Invalid regular expressions with a repeat operator after an opening bracket such as (*.?) did not trigger an error message. The Create page and regex syntax highlighting did properly flag the error.
- Test: RegexBuddy would hang on a regular expression starting with a lookbehind with more than one alternative, e.g. (?<=joe|jane)doe
- Use: Java code snippets for splitting a string called Split() with uppercase S instead of split() with lowercase s.
- Use: JavaScript code snippets for regexes with the "dot matches newlines" option turned on now add a warning comment to the code snippet, instead of adding the /s flag which JavaScript does not support.
RegexBuddy 2.0.5 - 16 April 2005 Improvements: - Copying and pasting the regex as a PHP preg string is now more conservative with adding and removing backslashes
- Debug: Character classes are now highlighted as single tokens.
- Paste from string: If the text on the clipboard does not contain any quote characters, treat the whole text on the clipboard as the string with omitted delimiting quotes.
When pasting a string, RegexBuddy eliminates everything outside the quote characters. This makes it quick to copy and paste a regular expression, as you can copy a full line of source code and RegexBuddy will automatically extract the string from it. Bug fixes: - Create: Typing \P{M} (negated Unicode property) into the regular expression with the Create tab active caused an access violation.
- Debug: Regular expressions with lookbehind can now be properly debugged.
- Pasting /\d/ as a Perl-style operator removed the backslash before the d.
- Regex: Greedy tokens were sometimes incorrectly made possessive by the optimization introduced with RegexBuddy 2.0.2.
- Regex: Typing in negative lookahead slowly, so RegexBuddy will try to evaluate the regular expression with an unclosed lookbehind, caused RegexBuddy to stop finding any matches at all, until RegexBuddy is restarted.
- Regex: automic groups were not treated as being atomic in certain circumstances.
- Regex: conditionals didn't always work properly.
- \b incorrectly matched at the start and the end of the subject string when the string did not start or end with a word character.
RegexBuddy 2.0.4 - 17 March 2005 Improvements: - Debug: Changing the regular expression now automatically clears the debugger output. Press Debug on the Test page again to debug the modified regular expression.
- Test: Highlighting is now done in the background, so testing complex regular expressions on a large amount of text doesn't slow down or lock up RegexBuddy. Highlighting will disappear while matches are being found, and automatically reappear when done.
- Test: List All, Replace All and Split now perform their task in the background, so you don't have to wait for the job to be completed. Taking any action on the Test page that produces match details automatically cancels any pending operation.
- Test: Selecting a group from the Highlight button's drop-down menu now instantly changes the group highlighting, without finding all regex matches anew. If the selected group was already being highlighted, the group highlight is removed (only the overall match highlight remains).
Version 2.0.x bugs fixed: - RegexBuddy would crash when alternating identical regular expressions, such as test in "abc|test|test|xyz"
- RegexBuddy's regular expression optimizer incorrectly made greedy tokens followed by negative lookahead possessive, if the characters matched by the token and the lookahead are mutually exclusive.
- Using a caret inside a lookbehind, and turning on the option for caret and dollar to match at line breaks caused an error.
- When ((.)a)+ matches 1a2a3a4 the second backreference contained 4 (character matched in the last unsuccessful attempt) instead of 3 (character matched in the last successful match).
Linux-only version 2.0.x bugs fixed: - Linux: Create page, Insert Token button, Use Backreference item did nothing except show an error message
- Linux: Ellipsis (...) button for Unicode characters in the character class screen (create page, insert token, character class) had no effect at all
- Linux: Trying to cut or copy text to the clipboard did nothing except show an error message
RegexBuddy 2.0.3 - 22 February 2005 New features: - GREP: Search through files on a network share by entering a UNC path as the folder (e.g. \\server\share\folder)
Improvements: - Regex: You can now use all regex tokens inside lookbehind in RegexBuddy. Note that besides RegexBuddy, the .NET framework is the only regex engine that supports this.
- RegexBuddy now immediately aborts a match attempt when it detects "catastrophic backtracking". Though RegexBuddy's new regex engine (introduced with version 2.0) would not crash in case of catastrophic backtracking (unlike most regex engines), it would continue to look for further matches (like most regex engines), making RegexBuddy unresponsive.
- Test: Highlighting is now done in the background, so testing complex regular expressions on a large amount of text doesn't slow down or lock up RegexBuddy.
Version 2.0.x bugs fixed: - Regex: \x00 and \u0000 now properly match a NULL character.
- RegexBuddy would infinitely repeat greedy groups that resulted in zero-length matches, such as in the regular expression (a*)*
Note that repeating a group that can result in zero-width matches is not useful. This regular expression is better written as (a+)* or even (a+) - When using lookaround containing a single literal character, preceded in the regex by nothing except literal characters, the lookaround character was matched as a literal character. E.g. q(?=u) was matched as qu.
RegexBuddy 2.0.2 - 8 February 2005 New features: - Preferences, Regex Colors: Option to disable syntax coloring of regular expressions
Improvements: - Library: Expanded RegexBuddy's library with regular expressions for dealing with words, quote characters, credit card numbers, postal codes, blank lines, passwords, etc.
Version 2.0.x bugs fixed: - Create: HTML Export caused an access violation with regular expressions using character classes.
- Create: InsertToken->Use Backreference would cause an access violation when the edit box for entering the regular expression is completely empty.
- Test: Certain regular expressions caused intermittent access violations.
RegexBuddy 2.0.1 - 28 January 2005 Improvements: - Test: Highlight is now on by default when starting RegexBuddy.
Version 2.0.0 bugs fixed: - Test: Highlight drop-down menu items caused an access violation when the highlighting was not active already, rather than turning on highlighting.
- Regex: A regex with alternation inside a group nested in another group, or alternating groups inside a group, caused an access violation.
RegexBuddy 2.0.0 - 24 January 2005 New features: - Debug: Get a complete view of how the regular expression engine steps through the entire matching process. You will see which regex token matches what, at which point, and how it interacts with the rest of the regular expression. This is the best way of learning why a particular regular expression works exactly the way it does. It takes the guesswork out of fixing regular expressions that match something you don't want, or don't match something you want.
- GREP: Search or search-and-replace through files and folders. Useful for quick searches and edits that don't require PowerGREP's wealth of options.
- Create, Test: Unicode regex tokens \p{property}, \P{property} and \uFFFF and \X. \p, \P and \u can be used both inside and outside character classes.
- Full Unicode support. All edit boxes for entering regular expressions now fully support Unicode. The edit box on the Test page supports Unicode and a variety of other code pages. Right-click to change the encoding.
- Regex: Named capturing groups can now be used as the "if" part in an "if-then-else" conditional.
- Test: List All button to collect a list of all matches in the test data.
- Test: Double-click any highlighted match to get complete details about the match and its backreferences.
- Test: Matches are counted when double-clicking on a highlighted match. The details will show the number of the match, and the total amount of matches.
- Use: Delphi Win32 language support, based on the free TPerlRegEx VCL component which is a full-featured wrapper around PCRE.
- Use: Ruby language support.
- Copy and paste PHP preg '//' strings as well as JavaScript and Ruby // operators
- Preferences: Option to show line numbers on the Test page.
Improvements: - Create: RegexBuddy now recognizes hexadecimal escapes \xFF and octal escapes \0377 inside character classes.
- Double-clicking on the regular expression now selects the entire regex token that was clicked on, rather than the entire word. (e.g. \bword\b now highlights \b or word, rather than bword).
- Library: Last used library is automatically opened when starting RegexBuddy the next time.
- Preferences: Selected text color can now be configured.
- Test: Multiple named capturing groups can now have the same name. Note that not all regular expression flavors allow this (.NET does, Python and PCRE do not).
- Test: Replace All highlights the replacements in the result.
- \t, \r and \n are now treated as regex tokens in the replacement text.
- Backreferences are now highlighted in the replacement text.
- RegexBuddy will no longer crash when testing a regular expression that is too complex because of "catastrophic backtracking". Instead, RegexBuddy will abort the match attempt and note in the test or debug results that the regular expression is too complex.
Bug fixes: - Use: Ctrl+C shortcut key did not work properly on the Use page.
- Create: Inserting a repetition operator no longer puts a non-capturing group around a single regex token consisting of multiple characters in the regex syntax.
- Use: PCRE code snippets declared "erroffset" but used "erroroffset".
- Linux Fedora Core 2: RegexBuddy would fail to run at all, aborting with a segmentation fault. This was due to a new security feature in Fedora Core 2 (and later) preventing RegexBuddy from running (even though there was no security risk).
RegexBuddy 1.2.1 - 29 September 2004 New features: - If-then-else regex conditionals are now supported by the regex syntax coloring and the regex tree on the Create page.
- The Library page now indicates the file name of the open library.
- Edit boxes on the Test and Use pages now have context menus with the typical items such as cut, copy and paste.
Bug fixes: - Linux only: Clicking on the regex tree did not highlight the corresponding token in the regular expression.
- Use: C# and Delphi.NET snippet "Iterate over all matches and capturing groups in a string" contained an extraneous closing parenthesis.
- Use: RegexBuddy incorrectly escaped backslashes in the JavaScript /regex/ notation. Backslashes only need to be escaped when writing a regex as a string literal (dubbed "alternative" notation by RegexBuddy).
RegexBuddy 1.2.0 - 1 June 2004 New features: - Create: Support for .NET-style named capture (?<name>group) and named backreferences \k<name>
.NET-style named capture is automatically converted into Python-style named capture when the regular expression is implemented in a code snippet on the Use page for PHP/preg, Python or PCRE. - Create: Support for Python-style named capture (?P<name>group) and named backreferences (?P=name)
Python-style named capture is automatically converted into .NET-style named capture when the regular expression is implemented in a code snippet in a .NET language on the Use page. - Replace: Support for .NET-style named references ${name} and Python-style named references \g<name> in the replacement text.
- Use: Function to extract the text matched by a named capturing group for C#, VB.NET, Delphi for .NET and PCRE.
- Use: Python language support
Improvement: - Use: Selecting another language now keeps the same function selection, if it is available in the newly selected language
Bug fix: - Use: PHP preg code snippets used "preg" instead of "preg_match" to test if a regex matches a string
RegexBuddy 1.1.0 - 17 May 2004 New features: - RegexBuddy can now automatically generated code snippets for Delphi for .NET
Bug fixes: - Test: Changed the shortcut for Find Next from Alt+N to Alt+X. Alt+N will launch a new instance of RegexBuddy.
- Test: Find First and Find Next now scroll the test subject to bring the match into view.
RegexBuddy 1.0.1 - 10 May 2004 The release of RegexBuddy has gone very smoothly. No serious issues have been reported. A few minor corrections are made in version 1.0.1. Improvements: - Alt+S shortcut to send a regex to the application RegexBuddy was invoked from
- Use: The PowerGREP button now works like the Send To button when RegexBuddy was activated from within PowerGREP. If RegexBuddy was not launched from PowerGREP, the Use button starts a new instance of PowerGREP via the command line.
Bug fixes: - Library: Delete button was not disabled when the library is read only
- Preferences: The options to show spaces and paragraphs markers did not have any effect
- Sending a regex from an application to RegexBuddy now properly updates the Create, Test and Use tabs
RegexBuddy 1.0.0 - 3 May 2004 First public release of RegexBuddy. |