RegexMagic Release Notes

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.

Your purchase also comes with one year of free major upgrades. So don’t worry if there might be a new major upgrade around the corner just because it’s been a while since the last major upgrade. If there is one around the corner, you’ll get it free, without having to ask. (But you can keep the old version if you prefer.)

If you ever hit a snag with RegexMagic, check here whether 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.

RegexMagic 2.13.1 – 16 October 2023

RegexMagic now officially supports .NET 7, Boost 1.83, Java 21, Python 3.12, and Ruby 3.2.  These regex flavors are unchanged compared with previous versions.

See also: RegexMagic 2.13.1 version history

RegexMagic 2.13.0 – 2 December 2022

RegexMagic now fully supports Boost 1.80, Java 19, .NET 7.0, PCRE2 10.39, PHP 8.1.12, Python 3.11, R 4.2.1, and Visual C++ 2022.

One of RegexMagic’s many patterns is one to generate regexes that match the VAT numbers of one or more European countries.  This pattern now has an additional option for Northern Ireland to match VAT numbers with the XI prefix.

ECMAScript 2018 added the /s regex flag to the JavaScript standard to turn on dot matches line breaks mode.  All the browsers that RegexMagic can target except for MSIE have since implemented this.  RegexMagic has supported this since version 2.8.0 when Chrome was the first browser to implement this.  Regexes generated by RegexMagic may use this mode if you use a pattern to match “anything“.  But when copying your regex as a JavaScript operator or when generating a JavaScript source code snippet on the Use panel, previous versions of RegexMagic did not add the /s to the JavaScript operator.  Now RegexMagic does so when it indicates on the Regex panel that “dot matches line breaks” is a required mode for the regex to work as intended.

RegexMagic 2.7.0 through 2.12.0 crash on startup when you try to run them on WINE 7.0.  The problem does not occur when running these versions of RegexMagic on older versions of WINE.  RegexMagic 2.13.0 now catches this error allowing it to start normally on WINE 7.0.

See also: RegexMagic 2.13.0 version history

RegexMagic 2.12.0 – 25 October 2021

This release brings RegexMagic up-to-date with all the applications that it supports.  Newly supported versions are Boost 1.77, C++Builder 11, Delphi 11, Java 17, PCRE 8.45, PCRE2 10.37, PHP 8.0.11, Python 3.10, and R 4.0.11.

ECMAScript 2018 added named capture groups to the JavaScript standard.  All the browsers that RegexMagic supports except for MSIE have since implemented this.  RegexMagic now uses named capturing groups when generating regular expressions targeting any browser other than MSIE.  On the Use panel, RegexMagic can now generate a JavaScript code snippet to retrieve the match of a named capturing group.

RegexMagic 2.11.0 – 20 May 2021

This release brings RegexMagic up-to-date with all the applications that it supports.  Newly supported versions are Boost 1.76, Java 16, .NET 5.0, PCRE2 10.36, Perl 5.32, PHP 8.0.6, Python 3.9, R 4.0.5, Ruby 3.0, and XRegExp 5.

This release brings an important fix to the regular expressions generated by the date and time pattern.  The issue occurred if your pattern used a date and time format using the names of the months and you had the field validation mode set to strict.  In this field validation mode, the date and time pattern generates a regex with separate alternatives for months with different numbers of days (29, 30, or 31).  This worked correctly with month numbers.  The generated regex would match 2021-04-30 but not 2021-04-31.  But when using month names each alternative listed all the month names, allowing the regex to match the 31st of any month, including 31 April.  Now each alternative only lists the names of the months that have the number of days matched by the alternative, so 30 April can match but 31 April cannot.

The drop-down lists with the names of the months and the names of the days for the days now have separate predefined entries with only the short names and only the long names in addition to the entry with combined short and long names.

The IPv4 address pattern now correctly loads the options “limit the IPv4 addresses to these ranges” and “validate 0..255 in dotted addresses” when you open a RegexMagic Formula from a file or a library.

RegexMagic 2.10.0 – 27 May 2020

This release brings RegexMagic up-to-date with all the applications that it supports.  Newly supported versions are Boost 1.73, Delphi and C++Builder 10.4, Java 14, PCRE 8.44, PCRE2 10.34, PHP 7.4.6 R 4.0.0, and Ruby 2.7.

When you select “PowerShell operators” as your application on the Regex panel, you can now set “action to take” on the Action panel to “split subject along a regex“.  This allows you to generate a code snippet using PowerShell’s -split operator on the Use panel.

RegexMagic 2.9.0 – 22 November 2019

This release brings RegexMagic up-to-date with all the applications that it supports.  Newly supported versions are Boost 1.71, Visual C++ 2019, Delphi and C++Builder 10.3, Java 13, PCRE 8.43, PCRE2 10.33, Perl 5.30, PHP 7.3.11 Python 3.8, R 3.6.1, and Ruby 2.6.

If you use the “Match anything” pattern with its option “matching anything except” set to “text matched by the next field” then RegexMagic now knows that the option “dot matches line breaks” affects the regex generated by this pattern if the regular expression flavor does not support \p{Any} or \N to match any character or any character except line breaks.  This ensures that the regex generated for such flavors correctly follows the “can span across lines” option for that field and that RegexMagic correctly indicates whether “dot matches line breaks” should be turned on or off for that regex.

See also: RegexMagic 2.9.0 version history

RegexMagic 2.8.0 – 12 September 2018

This release brings RegexMagic up-to-date with all the applications that it supports.  Newly supported versions are Boost 1.68, Java 10, PCRE2 10.31, Perl 5.28, PHP 7.2.0 Python 3.7, R 3.5.1, and XRegExp 4.

RegexMagic 2.7.3 – 18 May 2018

RegexMagic now officially supports .NET 4.7.2, PCRE 8.42, PHP 7.1.17, and R 3.4.4.  These regex flavors are unchanged compared with previous versions.

RegexMagic’s installer has been improved to better deal with Controlled Folder Access.  This is the ransomware protection feature added to Windows Defender in the Windows 10 Fall Creators Update.  It is unchanged in the April 2018 Update.  RegexMagic’s installation will now go a bit more smoothly when Controlled Folder Access is enabled.  RegexMagic’s installer now knows that when Windows Defender is not operational (because you’re using another anti-malware solution), Controlled Folder Access can’t be active and thus needn’t be dealt with.  This avoids conflict between RegexMagic’s installer and certain heavy-handed anti-malware solutions such as BitDefender.

RegexMagic 2.7.2 – 19 February 2018

RegexMagic now officially supports .NET 4.7.1, PCRE 8.41, PHP 7.1.14, and R 3.4.3.  These regex flavors are unchanged compared with previous versions.

The Windows 10 Fall Creators Update adds a new feature to Windows Defender called Controlled Folder Access.  It is disabled by default.  When enabled, it prevents applications from creating files and modifying files in folders commonly used to save personal data such as the Desktop and Documents folders.  The goal is to block ransomware.  In practice, it seems to block almost any application unless you specifically add it to the list applications allowed through Controlled Folder Access.  Even applications like installers that run with Administrator privileges are blocked by it.

RegexMagic’s installer has been improved to better deal with Controlled Folder Access.  It will no longer show an error message when it can’t create the desktop shortcut.  This is the only aspect of RegexMagic’s installation that is blocked when Controlled Folder Access is enabled with the default settings.  During a regular installation, RegexMagic’s installer adds RegexMagic to the list of applications allowed through Controlled Folder Access, even when Controlled Folder Access is disabled.  This way you won’t run into issues when you try to save files in your Documents folder or on your desktop with RegexMagic.  The installer can’t do this when creating a portable install as then the installer doesn’t have the Administrator privileges needed to modify settings in Windows Defender.

RegexMagic can make use of multiple monitors.  The View menu provides two predefined dual monitor layouts.  You can also manually drag panels by their tabs onto another monitor where they become floating windows.  RegexMagic restores the layout of its panels when you close and restart it.  Previously, the dual monitor layouts did not restore the window on the second monitor.  If you had manually dragged off the Library panel into a floating window, that was sometimes not restored.  Both situations would leave an empty floating window.  They could cause RegexMagic to misbehave when trying to bring the missing panels back.  This release fixes a bug that prevents those problems from occurring.

Some patterns, such as the “literal text” and “list of literal text” patterns can result in very long regular expressions if you provide them with a lot of text to match.  This release fixes a bug that caused regular expressions longer than 64,000 characters to be generated incorrectly.  Now RegexMagic correctly generates regular expressions up to 1 billion characters.  Your target application may not support such long regular expressions though.  RegexMagic’s own regular expression engine also puts limits on the complexity of the regular expressions that it will handle.  If the generated regex is too long, the part that exceeds the limit it is highlighted in red on the Regex panel.  The Samples panel can’t show results for such regexes.  The regex may or may not work in the target application.  RegexMagic does not know the limits of the target applications.  Those are usually undocumented implementation details.

RegexMagic 2.7.1 – 22 September 2017

RegexMagic now officially supports Boost 1.65, PHP 7.1.14, and R 3.4.1.  These regex flavors are unchanged compared with previous versions.

This release fixes one bug.  It only happened when, on the Match panel, you added a field, set its “kind of field” to “sequence”, set to it repeat more than once, and placed only a single field inside the sequence field.  In this situation the Samples panel did not correctly highlight the matches of the field that is alone inside the repeated sequence.

See also: RegexMagic 2.7.1 version history

RegexMagic 2.7.0 – 19 June 2017

This release brings RegexMagic up-to-date for all the applications that it supports.  Newly supported versions are Boost 1.64, Delphi and C++Builder 10.2 Tokyo, PCRE 8.40, PCRE2 10.23, Perl 5.26, PHP 7.1.6, Python 3.6, R 3.4.0, Ruby 2.4, and std::regex in Visual C++ 2017.

When RegexMagic generates your regular expression it also lists all the matching options that the target application or programming language supports.  Options that affect your regular expression are indicated as “required options”.  You have to set these in your application to get the same results as in RegexMagic.  Options that do not affect your regex are indicated as “unused options”.  RegexMagic shows your application’s defaults for these options for completeness.  Many applications have an option to ignore whitespace.  RegexMagic calls this “free-spacing” when on and “exact spacing” when off.  Previously, RegexMagic always treated this as a required option.  Now, RegexMagic knows that regular expressions that don’t have spaces aren’t affected by this option.

RegexMagic fully supports text written in right-to-left scripts such as Arabic or Hebrew as well as text that is a mixture of left-to-right and right-to-left scripts.  You can toggle each multi-line editing control between left-to-right or right-to-left being the dominant text direction by holding down either Ctrl key on the keyboard, pressing and releasing the left hand or right hand Shift key on the keyboard, and then releasing the Ctrl key.  This key combination also works in other applications such as Microsoft Notepad.  Now the Ctrl+Shift key combination is only enabled in RegexMagic if you have a keyboard layout for a right-to-left language installed in Windows.  This way people who never type right-to-left text won’t be surprised that their text suddenly becomes right-aligned when they accidentally press Ctrl+Shift without including any other keys in the combination.

RegexMagic is now able to automatically check for updates and other news.  You can also make it check on request by selecting Help|News and Updates in the menu.  When RegexMagic shows news or when the check on request tells you there is no news you can click the Settings button to choose which news items you want to see.  By default, RegexMagic automatically shows news and updates for itself and any of our products that you’ve used in the past 30 days.

News settings and history are shared between all our products so you won’t see the same news more than once.  Each product automatically shows at most one news item per day and at most one news item on request.  So you don’t need to worry about ever being bombarded with news if you haven’t used our software for a while.  You won’t see the news item announcing RegexMagic 2.7.0 either because that is considered to be old news already when you’ve upgraded to RegexMagic 2.7.0.

See also: RegexMagic 2.7.0 version history

RegexMagic 2.6.0 – 8 December 2016

This release brings RegexMagic up-to-date for all the applications that it supports. Newly supported versions are PHP 7.0.13 and R 3.3.2.

But the big news this release is the newly added support for C++ regular expressions using Boost. RegexMagic supports Boost 1.38, 1.39, and 1.42 through the latest 1.62. Boost 1.40 and 1.41 are not supported as these have some fundamental bugs. Boost 1.38 and 1.39 (which have identical regex features) are supported because the classic Win32 C++Builder compiler is stuck on this version.

Alongside boost::regex you will also see boost::wregex in the list of applications. Choose boost::regex if your C++ code works on arrays of char or std::string. Choose boost::wregex if it works on arrays of wchar_t or std::wstring instead. On the Use panel there are separate functions for working with character arrays and with string objects.

RegexMagic now scales itself better on systems using 200% or more display scaling. On such systems, toolbar icons are doubled in size. This makes the small icons suitable for 200% display scaling and the large ones for 300% scaling. You can switch between small and large icons via View|Large Toolbar Icons menu item. The about box and demo messages now double or triple their size on systems using 200% or 300% display scaling. These changes mean that RegexMagic is now perfectly usable on all displays available on the market today, including laptops with 4K screens.

Windows 10 changes the way the mouse wheel works in Windows. In older versions of Windows, the wheel scrolled the window that had keyboard focus, regardless of the position of the mouse pointer. In Windows 10, the wheel scrolls the window under the mouse pointer. RegexMagic now correctly implements the Windows 10 mouse wheel behavior when running on Windows 10. The mouse wheel behavior in RegexMagic is unchanged when running on an older version of Windows.

A couple of important bugs affecting the GREP panel have been fixed. A search-and-replace that doesn’t create backup copies did not add error messages to the results for files that could not be overwritten (due to access rights or a lock by another application). This bug was introduced in RegexMagic 2.0.0 and is now fixed. The Undo and Delete Backup Files commands in the drop-down menu under the GREP button did not do anything other than falsely claiming that they did what they were supposed to do. This bug was introduced in RegexMagic 2.4.0. It is now fixed allowing you to once again undo GREP actions by restoring files from their backups and to quickly clean up the backups when they are no longer needed.

RegexMagic 2.5.1 – 19 September 2016

The PowerGREP button on the GREP panel now launches PowerGREP 5 if you have it installed. If not, it will launch PowerGREP 4 or 3 if you have one of those installed.

A few minor bugs were also fixed. The version history has the complete list.

RegexMagic 2.5.0 – 22 August 2016

This release brings RegexMagic up-to-date for all the applications that it supports. Newly supported versions are Delphi and C++Builder 10.1 Berlin, PCRE 8.39, PCRE2 10.22, PHP 7.0.9, PowerGREP 5, R 3.3.1, and Ruby 2.3.

Clipboard contents can be grepped directly by setting the folder to clipboard: and leaving the file mask blank or setting the file mask to something that matches clipboard.txt. Files larger than 2GB are now skipped with a clear error message indicating RegexMagic is limited to 2 GB files rather than finding incorrect or no matches.

Some of the RegexMagic patterns now generate improved regexes. The list of literal text pattern now generates a more optimal regex when all the items in the list start or end with the same characters. The credit card pattern now includes bin ranges 2221 through 2720 for MasterCard. The URL and email patterns now allow top-level domains up to 63 characters (the maximum length technically possible) instead of up to 6 characters (the longest domain that actually existed until recently).

A few minor bugs were also fixed. The version history has the complete list.

RegexMagic 2.4.0 – 14 October 2015

This release brings RegexMagic up-to-date for all the applications that it supports. Newly supported versions are Visual C++ 2015, Delphi and C++Builder 10 Seattle, PCRE 10.20, PHP 5.6.14, Python 3.5, XRegExp 3.0.0, and R 3.1.2. Microsoft Edge has been added as an additional browser option for JavaScript and HTML5 Pattern.

Under the Copy button there are new items for copying the regex or replacement text as a C++11 raw string literal. C++11 raw string literals do not require backslashes or quotes to be escaped and can contain literal line breaks. This makes them much better suited for adding regular expressions to your source code than normal C string literals because there’s no doubling up of all those backslashes. RegexMagic automatically adapts the raw string delimiter to make sure it does not occur in the regex. The std::regex source code templates for all C++Builder versions and for Visual C++ 2013 and 2015 now use C++11 raw string literals. Earlier versions of Visual C++ do not support them.

Some cosmetic changes were made to RegexMagic’s menus and toolbars to better fit the style of Windows 10. These changes only take effect when RegexMagic is actually running on Windows 10. Screen shots and videos have been updated to show RegexMagic running on Windows 10.

A few minor bugs were also fixed. The version history has the complete list.

RegexMagic 2.3.1 – 30 June 2015

This release fixes a bug that was introduced in yesterday’s release that broke the GREP panel.

See also: RegexMagic 2.3.1 version history

RegexMagic 2.3.0 – 29 June 2015

This release brings RegexMagic up-to-date for all the applications that it supports. Newly supported versions are Perl 5.22, PHP 5.6.10, and R 3.2.1.

One new feature was added. At the bottom of View menu you’ll find a Custom Layouts item. If you’ve rearranged RegexMagic panels, you can use the Custom Layouts submenu to save that layout or switch to a previously saved layout.

On the Regex panel, the Modifiers button (purple tick mark) is explained in the Assistant panel and help file as generating a regex that does not depend on regex options set outside the regular expression. Now this button does exactly that, as long as the chosen regex flavor supports mode modifiers in the regex for turning options on and off, so the regex will work regardless of which options are turned on or off outside the regex. There will be no “required options” listed on the Regex panel. Previously, this button would only add mode modifiers for options that need to be changed from their defaults, so the regex would not work correctly if it required an option to be in its default state and that option was toggled outside the regex. If you do not use the Modifiers button, or if the regex flavor does not support mode modifiers, there may be “required options” listed on the Regex panel. In that case you should generate a code snippet on the Use panel which will set the necessary options.

On the Samples panel, the “show samples and/or action results” drop-down list allows you to choose whether RegexMagic should display your sample text, the results of a search-and-replace or split operation, or both. Previously, this setting would automatically revert to showing only the sample text when there is no search-and-replace to be performed (because you changed a setting on the Action panel or no regex was generated). Now, the setting is preserved at all times. If there are no results to be displayed, RegexMagic displays only the sample text. As soon as results become available again, RegexMagic again displays what you selected in “show samples and/or action results”.

A bunch of minor bugs were fixed too. On the Match panel, the “select field” drop-down list wasn’t cleared immediately when deleting the last field. On the Regex panel, the Generate button could not be turned off if the formula resulted in a blank regular expression without any errors. On the Samples panel, clicking on a sample after loading a formula from a library marks the formula as modified, enabling the Save Formula button and triggering a prompt to save when loading another formula without having made any actual changes. Undoing changes to the sample text could lead to access violation or invalid pointer operation errors later on. View|Dual Monitor made the floating window take up the size of the entire second monitor, which caused it to appear behind the taskbar if the taskbar was on that monitor.

See also: RegexMagic 2.3.0 version history

RegexMagic 2.2.1 – 8 May 2015

Application version numbers were updated to .NET 4.6, PHP 5.6.8, PCRE 8.37, and R 3.2.0. None of these made any changes to their regex flavors.

On Windows 8 and 8.1: The edges of the panels on the main window are now gray like they are on previous versions of Windows. Previously they were blue, which looked odd.

The 64-bit build of RegexBuddy no longer crashes on startup when the AllocationPreference registry key forces memory to be allocated from the top down. Since RegexMagic never comes even close to using 4 GB of RAM, these crashes never occurred during normal use.

RegexMagic 2.2.0 – 9 April 2015

This release brings RegexMagic up-to-date for all the applications that it supports. Newly supported versions are Delphi and C++Builder XE8, PHP 5.6.7, PCRE 8.36, R 3.1.3, and Ruby 2.2.

RegexMagic now fully supports PCRE2 10.10. PCRE2 is the successor to PCRE, by the same author. Key differences between PCRE2 and PCRE are a completely redesigned C programming API, and the ability to substitute regex matches (search-and-replace). PCRE2 is now a separate option next to PCRE in the drop-down list with applications in RegexMagic. Selecting PCRE2 on the Regex panel gives you code snippets using the new PCRE2 API on the Use panel. It also allows you to set “action to take” on the Action panel to make replacements. There are no separate UTF-8, UTF-16, and UTF-16 choices for PCRE2 in RegexMagic. The single PCRE2 choice supports all 3. Select the “import regex library” function on the Use panel to get a code snippet that allows you to choose between UTF-8, UTF-16, and UTF-32.

PCRE2 10.10 is the second release of PCRE2. The first release was 10.00. We’ve decided to skip the initial release because it has an important bug in its headline feature: replacement strings that end with a digit that is part of a backreference insert the digit as a literal at the end of each replacement, in addition to substituting the backreference. There are no other changes to the regex and replacement syntax between 10.00 and 10.10.

This release also fixes a couple of bugs that triggered access violation errors. The version history has the details.

See also: RegexMagic 2.2.0 version history

RegexMagic 2.1.1 – 12 December 2014

This release fixes a few bugs. In version 2.1.0, regular expressions and replacement strings that did not contain backslashes or line breaks were not correctly formatted as C# strings. The enclosing double quotes were missing. When using the date and time pattern, right-clicking the editor for the allowed date and time formats triggered an access violation instead of showing the context menu. Attempting to generate a regular expression with a match anything pattern set to not match characters from the next field that was followed by another “match anything” pattern triggered an access violation error. Now, you’ll get an error message that clearly explains why such a regular expression cannot be generated.

See also: RegexMagic 2.1.1 version history

RegexMagic 2.1.0 – 7 October 2014

This release brings RegexMagic up-to-date for all the applications that it supports. Newly supported versions are Delphi and C++Builder XE7, Perl 5.20, PHP 5.6.1, and R 3.1.1. Support for the Opera browser has been updated to reflect that it now uses the same JavaScript engine as the Chrome browser.

But the big news this release is the newly added support for C++ regular expressions using std::regex as implemented in the Dinkumware library that is included with Visual C++ 2008 through 2013 and C++Builder XE3 through XE7 for Win64. C++Builder for Win32 incudes boost::regex rather than std::regex. Support for boost::regex and other std::regex implementations is planned for future versions of RegexMagic.

Alongside std::regex you will also see std::wregex in the list of applications. Choose std::regex if your C++ code works on arrays of char or std::string. Choose std::wregex if it works on arrays of wchar_t or std::wstring instead. On the Use panel there are separate functions for working with character arrays and with string objects. The Copy menu has new items for copying the regex and replacement as L“” strings for C and C++.

If part of the regular expression needs to match “any” character then RegexMagic now prefers generating specific tokens such as \p{Any} to always match any character including line breaks or \N to always match any character excluding line breaks if they are supported by your application. This makes your regex independent of the option “dot matches line breaks”. If your application does not have these specific tokens, then RegexMagic generates a dot and turns “dot matches line breaks” on or off as needed like previous versions of RegexMagic did.

RegexMagic 2.0.4 – 7 July 2014

On the Action panel, if you set “action to take” to “split string along regex” then RegexMagic gives you several options to determine exactly how the string is split. One of those options is “include capturing groups” which determines whether the matches of capturing groups in your regex are added to the array while splitting the string or whether capturing groups are ignored. Many applications, however, do not have such an option. They always add or ignore capturing group matches. RegexMagic knows this and will alert you if your choice is not supported by your application. But Delphi’s and C++Builder’s TRegEx is unique in that it doesn’t support either option but always adds the match of the highest-numbered participating capturing group to the split array. This caused RegexMagic to show a warning regardless of whether you turned “include capturing groups” on or off. This has been corrected.

When marking blocks of text containing tabs or line breaks but no other control characters on the Samples panel, RegexMagic 2.0.4 now auto-detects the “literal text” pattern like RegexMagic 1 did instead of the “literal bytes” pattern that is new in RegexMagic 2. For blocks of text that do contain ASCII control characters other than tabs or line breaks, RegexMagic 2.0.4 continues to auto-detect the “literal bytes” pattern. You can switch between those two patterns on the Match panel, regardless of which or whether the marked blocks contain control characters or not. The key difference between these two patterns is that “literal text” gives you a text editor to enter the text the field should match while “literal bytes” gives you a hex editor.

See also: RegexMagic 2.0.4 version history

RegexMagic 2.0.3 – 27 May 2014

On the Operation tab in the Preferences you can decide what, if anything, should be preserved when you close and restart RegexMagic. If you chose not to preserve the RegexMagic Formula (contents of the Samples, Match, and Action panels), then RegexMagic would start up with a totally blank applications drop-down list on the Regex panel. This made it impossible to generate a regex unless you turned on preserving the formula again and restarted RegexMagic. Now RegexMagic will remember the application you selected on the Regex panel when you restart it, even if you turn off the option to preserve the formula.

RegexMagic provides a COM interface that allows other applications to invoke RegexMagic to allow you to generate a regular expression and send it back to that application. Our own products RegexBuddy, EditPad, and PowerGREP make use of this. With previous 2.0.x releases, sending a regex without a replacement text back to the application that invoked RegexMagic sometimes caused that application to receive garbage as the replacement text instead of a blank replacement text. This has been corrected. Applications designed to integrate with RegexMagic 1, including older versions of RegexBuddy, EditPad, and PowerGREP, will integrate correctly with RegexMagic 2.0.3, without requiring any change to those applications.

See also: RegexMagic 2.0.3 version history

RegexMagic 2.0.2 – 21 May 2014

RegexMagic 2.0.2 fixes a couple of issues that we missed in last week’s major upgrade. The items under the Open button on the Samples panel now work correctly. Previously they did nothing. Limiting the integer pattern to specific ranges and using only the “decimal 987” format now correctly groups the pattern’s alternatives in the regular expression like RegexMagic 1.x.x did. You’ll need this fix if you want to follow the steps in the video showing how to generate a simple regex. This video has been updated to show RegexMagic 2.

RegexMagic 2.0.2 also improves the regular expressions generated by the list of literal text pattern. If multiple items start with the same substring of 3 or more characters then that substring is now placed outside of the alternation, resulting in a shorter regular expression. If your list consists of twenty-one, twenty-two, and twenty-three, for example, then RegexMagic now generates twenty-(?:one|two|three) instead of twenty-one|twenty-two|twenty-three. The actual matches found by both regexes are the same.

RegexMagic 2.0.1 – 15 May 2014

RegexMagic 2.0.1 fixes a few issues that we missed in this Monday’s major upgrade. Generating regular expressions using the Integer pattern no longer triggers access violation errors. The colors used on the Regex panel can now be correctly configured on the Regex Colors tab in the Preferences. Text layouts can now be correctly configured on the Editors tab in the Preferences.

See also: RegexMagic 2.0.1 version history

RegexMagic 2.0.0 – 12 May 2014

When you start RegexMagic 2 for the first time, it may seem that not much has changed since RegexMagic 1. The user interface is indeed largely unchanged. You’ll feel right at home.

The only significant changes to the user interface is that on the Match panel the columns of buttons to insert and delete fields have been replaced with a row of buttons that provide many more options to insert, delete, and move around fields. This makes it much easier to rearrange the fields that your regular expression is generated from.

There is also a new toolbar at the top. It has New, Open, and Save buttons that allow you to save a RegexMagic Formula (settings on the Samples, Match, and Action panels) into a individual files. Adding formulas to libraries is still possible, of course. The main toolbar also has Undo and Redo buttons. These provide full undo and redo for editing formulas. Any change you make on the Samples, Match, or Action panels is undoable. When you open a RegexMagic Formula or load one from a library, RegexMagic will now prompt you if the previous formula was not saved or added to a library.

There are two new RegexMagic patterns. The control characters pattern can match any of the 32 ASCII control characters. The literal bytes pattern can match a literal sequence of bytes that you can enter via a hexadecimal editor. These patterns are useful when working with binary data or text containing non-printable characters. You can now add such samples easily by toggling the editor on the Samples panel to hexadecimal mode.

But the biggest change of all was made under the hood. On the Regex panel, the drop-down lists with the regex flavor and replacement flavor have been replaced with a single list of applications. These applications are a combination of regex flavor, replacement flavor, split flavor, string style, and source code template. Select “More applications and languages” at the top of the list to choose any of the 147 predefined applications. The number is so large because RegexMagic now supports many different versions of the same applications. Where RegexMagic 1 had only “Java”, RegexMagic 2 knows the differences between Java 4, 5, 6, 7, and 8. Some applications use the same flavors. VBscript developers, for example, can now select VBscript as their application. With RegexMagic 1 they had to remember that VBscript uses the JavaScript regex flavor. RegexMagic 2 supports the latest versions of all the regex flavors that RegexMagic 1 supported, including Delphi XE6, Java 8, .NET 4.5, PCRE 8.35, Perl 5.18, PHP 5.5.11, Python 3.4, R 3.1.0, Ruby 2.1, and Tcl 5.6. It also supports multiple variations of similar regex flavors, such as the JavaScript implementations in different browsers.

RegexMagic’s emulation of all the regex and replacement flavors it supports is now far more accurate. RegexMagic 2 can generate more optimal regexes for the different versions of the applications it supports than RegexMagic 1. But more importantly, when RegexMagic highlights the matches of the generated regular expression on the Samples panel, you can be confident that the indicated matches are those that your actual application will find in your samples. In total, RegexMagic 2 is aware of 594 different aspects (syntactic and behavioral differences) of 105 regular expression flavors, and 100 aspects of 30 replacement text flavors. If you thought most modern regex flavors were all pretty much the same: think again!

On the Action panel, the “action to take” can now be set to splitting strings. RegexMagic 2 introduces split flavors, which describe exactly how the split function in a particular programming language works, along with the options that it accepts. After generating the regex, RegexMagic’s Samples panel uses it to split strings in exactly the same way your actual application will. RegexMagic 2 is aware of 43 aspects of 19 split flavors.

The matching options such are now indicated with positive labels rather than checkboxes on the Regex panel. For example, RegexMagic 1 would indicate “case insensitive” being on or off. That could lead to confusing double negations. RegexMagic 2 indicates “case sensitive” or “case insensitive”. It also knows which matching options are supported by each application and indicates which of those you actually need to set to make your regex work as intended, and which modes do not affect your regular expression

The Regex panel can now compare multiple applications. If you’re creating regexes to be used in a library that targets several versions of a programming language, you can select all those flavors. RegexMagic will tell you if it would generate the same or a different regex for each application. RegexMagic adapts the generated regexes to the features and syntax supported by each application. RegexMagic will also tell you whether the generated regexes would make those applications find the same matches or different matches in your samples. While RegexMagic tries to generate regexes that find the same matches, this is not always possible as some applications are simply lacking in regex features.

The Samples panel now highlights line breaks when they are part of the regex match. It now indicates the line break style instead of showing a generic paragraph symbol.

The Language selection was removed from the Use tab. Selecting an application now automatically selects the right source code template for the Use panel. You can still create custom source code templates or use the ones you created for RegexMagic 1. To put them to use, select “More applications and languages” in the applications list and then create your own application, selecting the flavors it uses and the source code template. The template editor now highlights placeholders which keeps things readable in languages that treat % as an operator.

RegexMagic’s built-in GREP excludes files and folders that are hidden or that look like backup copies by default. In RegexMagic 2, you can now configure or disable this on the GREP tab in the Preferences.

RegexMagic 2 makes rich text available on the clipboard whenever you copy some text. This means that syntax coloring is preserved when you paste into a word processor or rich text editor. Your regular expressions, test data with highlighted matches, and code snippets will appear in your word processor as they do in RegexMagic.

RegexMagic 2 is a full Unicode application. You can use any mixture of any number of scripts anywhere in RegexMagic, including in file names. RegexMagic now supports bidirectional editing, so you can edit text written in right-to-left scripts such as Arabic or Hebrew or text written in a mixture of left-to-right and right-to-left scripts. You can configure text direction, cursor movement, fonts, and character spacing as part of the new text layout configuration system on the Editors tab in the Preferences.

RegexMagic 2’s interface scales properly and looks crisp when using the high DPI settings in Windows Vista and later. This makes RegexMagic look perfect on the latest ultra high resolution laptops and monitors.

RegexMagic 2 requires Windows XP, Vista, 7, 8, 8.1, 10, or 11 to run. The 32-bit and 64-bit editions of these Windows versions are fully supported. Older versions of Windows are no longer supported.

Upgrade your copy of RegexMagic now and generate regular expressions more easily and accurately than before.

See also: RegexMagic 2.0.0 version history

RegexMagic 1.4.0 – 8 January 2014

The “country” pattern was updated to the latest list of countries defined in ISO 3166 and new members of the EU and OECD. The “VAT number” pattern was updated to add Croatia which recently joined the EU and to use Ireland’s new VAT number format. The “currency” pattern was updated to add newly created currencies and to mark some existing currencies as obsolete. Many other patterns also received minor tweaks and fixes to the regular expressions that they generate. The version history has the complete list.

RegexMagic 1.3.2 – 12 September 2013

This release fixes a bunch or corner case bugs that affected Groovy, PostgreSQL, and R code generation, proxy settings on the forum, the VAT numbers pattern, and the command line interface. The version history has the complete list.

RegexMagic 1.3.1 – 12 March 2013

This release fixes a number of corner case bugs. The “list of literal text” pattern now correctly handles items that start with the same characters but differ in case. The Samples panel now correctly highlights the matches of regexes generated from a single field with a pattern that uses alternation (such as the list of literal text field). On the Use panel, Visual Basic.NET code snippets using free-spacing regular expressions now have the necessary line continuation characters before and after the regex.

See also: RegexMagic 1.3.1 version history

RegexMagic 1.3.0 – 25 October 2012

RegexMagic 1.3.0 is now fully compatible with Windows 8. We only had to fix a few minor issues in the installer, and one issue in RegexMagic itself that caused drop-down lists on toolbars to display their drop-down arrows incorrectly.

The Basic Characters, Unicode Characters, and Date and Time patterns have all been improved to generate better regular expressions. The “as few times as possible” option no longer causes an access violation when generating the regex for a flavor that does not support lazy quantifiers. RegexMagic no longer becomes unresponsive when generating an extremely regex with lots of alternation in groups.

See also: RegexMagic 1.3.0 version history

RegexMagic 1.2.5 – 22 March 2012

In previous versions of RegexMagic, the Match and Action panels did not always rearrange their contents correctly when the panels or RegexMagic itself were resized on some computers. Version 1.2.5 fixes this in most situations. If the problem still occurs on your PC, make sure all the options to preserve RegexMagic’s state are checked on the Operation tab in the Preferences. Then close RegexMagic and restart it. All your data will be preserved and all the panels will be laid out correctly when RegexMagic restarts.

See also: RegexMagic 1.2.5 version history

RegexMagic 1.2.4 – 4 November 2011

The installer for the purchased version of RegexMagic now allows you to create portable installations even when you don’t have administrator rights on the PC you’re running the installer on. You can create a portable install in any folder that you can write to, even if that folder is on a hard drive.

Several fixes and improvements were made to the RegexMagic patterns that you use to build up regular expressions in RegexMagic:

See also: RegexMagic 1.2.4 version history

RegexMagic 1.2.3 – 22 June 2011

The Create Portable Installation item in the Help menu was broken in RegexMagic 1.2.2. This release restores that functionality.

RegexMagic 1.2.2 – 17 June 2011

This release makes RegexMagic fully compatible with EditPad Lite 7 and EditPad Pro 7, which were released last month. The RegexMagic item in the Search menu in EditPad Lite 7 and EditPad Pro 7 was already capable of launching previous versions of RegexMagic. But the Open with EditPad command on the GREP panel in previous versions of RegexMagic only worked with EditPad Pro 6. In RegexMagic 1.2.2, the Open with EditPad command still uses EditPad Pro 6 if it is installed. If not, it will look for EditPad Pro 7 and EditPad Lite 7, in that order.

A bug in the “date and time” RegexMagic pattern was fixed. The time portion of the regular expression is now generated correctly when using the “limit time values” option along with the strict field validation mode.

See also: RegexMagic 1.2.2 version history

RegexMagic 1.2.1 – 28 March 2011

Marking an integer number on the Samples panel caused RegexMagic 1.2.0 to auto-detect the new pattern for matching IPv4 addresses, instead of the more applicable pattern for matching integers as previous versions did. RegexMagic 1.2.1 will once again auto-detect the integer pattern when you mark an integer. You can manually change the pattern to “IPv4 address” if you want to match IPv4 addresses that are written as 32-bit integers instead of the usual dotted notation.

See also: RegexMagic 1.2.1 version history

RegexMagic 1.2.0 – 14 March 2011

Three new RegexMagic patterns are now available on the Match panel. The “states and provinces” pattern matches the name or the code of a state or province in one or more countries. You can select which countries you want to allow, and which states or provinces in those countries you want to allow. At this time, the “states and provinces” pattern only supports US states and Canadian provinces.

The “IPv4 address” pattern matches an IP address in dotted notation (e.g. 192.168.0.1) or as a 32-bit integer in decimal or hexadecimal notation. You can make the pattern match any IPv4 address, or restrict it to one or more ranges of IP addresses or specific IP addresses.

The “GUID” pattern matches any GUID in the form of {6C265977-24E0-4D3E-8230-A0A00EDFE46B}. Braces and hyphens can be made optional.

The “integer” pattern was improved. You can now specify multiple ranges of numbers for the pattern to match, rather than just one minimum and maximum. A single hexadecimal digit in the range 8-B, 8-A, 9-B, or 9-A is now matched with [89ab], [89a], [9ab], or [9a] instead of [8-9a-b], [8-9a-a], [9-9a-b], or [9-9a-a]. The old character classes worked correctly, but the needless ranges make the regex harder to read than it needs to be.

Two bugs were fixed. The URL pattern generated a regex that did not allow URLs to end with a trailing / when the field validation mode was set to average or strict. On the Samples panel, selecting text that looks like an integer number larger than 2^32 and clicking the Mark button triggered an “is not a valid integer value” exception, causing RegexMagic to fail to detect a pattern for the marked field.

See also: RegexMagic 1.2.0 version history

RegexMagic 1.1.0 – 3 September 2010

Two new RegexMagic patterns are now available on the Match panel. The “country” pattern matches ISO 3166 country codes and/or names. The “currency” pattern matches ISO 4217 currency codes. New examples showcasing these patterns were added to the help file.

The “basic characters” and “Unicode characters” RegexMagic patterns now have a new option to match all characters except those specified, instead of only those specified. The “integer” pattern no longer generates redundant alternatives such as [0-9]+|[0-1]+ when selecting multiple integer formats without prefix or suffix.

RegexMagic 1.1.0 adds support for the new RegularExpressions and RegularExpressionsCore units in Delphi XE and C++Builder XE. The RegularExpressionsCore unit is a new version of the TPerlRegEx component, which is now a class rather than a component. The RegularExpressions unit provides a .NET-style interface to the TPerlRegEx component. TPerlRegEx uses the PCRE regex flavor and the JGsoft replacement text flavor. Since RegexMagic already supported these flavors, all that has changed are the source code templates on the Use panel.

You’ll also find “Delphi Prism” and “Delphi (.NET)” in the list of languages. These source code templates are unchanged compared with previous versions of RegexMagic. They support Delphi Prism, which is Embarcadero’s current .NET solution for Delphi developers, and the discontinued Delphi for .NET compiler that was part of RAD Studio 2005 to 2007.

When copying a regex or replacement text as a Basic-style string or generating a Visual Basic source code snippet, RegexMagic now uses named constants such as vbCrLf instead of chr(13) & chr(10) for non-printable characters for which such constants exist. VB 6 and VBscript functions for iterating over all matches now set myRegExp.Global = True which is required to be able to find more than one match.

See also: RegexMagic 1.1.0 version history

RegexMagic 1.0.6 – 23 April 2010

Marking two or more samples for the same field sometimes caused RegexMagic to lock up if it detected a date and time pattern with two or more different date and time formats. Detection of date and time formats is now improved, eliminating the lockup while also producing smarter results.

The PowerGREP button on the GREP tab in RegexMagic now launches PowerGREP 4 if it is installed. RegexMagic is now also capable of detecting portable installations of PowerGREP if RegexMagic is installed onto the same device.

See also: RegexMagic 1.0.6 version history

RegexMagic 1.0.5 – 2 February 2010

This release fixes one bug that we missed in version 1.0.4. Loading a formula from a library did not properly update the Match panel, causing access violation errors if you tried to access something on the Match panel.

RegexMagic 1.0.4 – 19 January 2010

This version brings several minor fixes and improvements. If the technical explanations below about the regular expressions generated by RegexMagic sound pretty complicated to you, then RegexMagic may be just the product that you need to create your own regular expressions. Use the Match and Action panels in RegexMagic to specify what you want, and let RegexMagic (and its developer) worry about the proper regular expression syntax.

The contents of the Match panel are now rearranged correctly when making changes that require the panel to be rearranged even when the contents of the panel have been scrolled down. Loading a library and then starting with a new library and adding a formula no longer triggers access violation errors. Menu and toolbar icons now appear correctly on Windows 98, ME, and 2000.

On the Action panel, if you specify one field to be replaced, RegexMagic automatically adds capturing groups before and after that field to be able to reinsert the text before and after the field into the replacement text. If you also create a capturing group that spans multiple fields including the field you want to replace, that results in overlapping capturing groups. That caused an error in RegexMagic 1.0.3 and earlier because regular expressions don’t support overlapping capturing groups. Now, RegexMagic detects this situation and will use multiple capturing groups, if needed, to capture the parts of the regex before and after the field that you want to replace.

Several fixes were made to generating regular expressions that include the “regular expression” pattern. This pattern allows you to insert an arbitrary regular expression into your RegexMagic formula. If you repeat a field using this pattern, RegexMagic now properly groups the pattern’s regular expression so it is properly repeated as a whole. If the regular expression has capturing groups, RegexMagic now takes those groups into account when determining the numbers for the capturing groups on the Action panel. Backreferences in the pattern’s regular expression are now also adjusted to the new numbers of the capturing groups in the final regular expression.

See also: RegexMagic 1.0.4 version history

RegexMagic 1.0.3 – 26 August 2009

This version brings several minor fixes and improvements. Auto-detection of the “date and time” pattern now recognizes things like 20090826T110259Z and 20090826 as date/time indicators. For 20090826, the “integer” pattern still has precedence.

Mouse wheel handling on the Match panel was improved. The contents of the Match panel can now be scrolled with the mouse wheel after clicking on some blank space on the panel. The list of fields can be scrolled with the mouse wheel after clicking on some blank space on the “fields in the regular expression” group or on the scrollbar for the fields.

When attaching a RegexMagic Formula to a forum message, the default file name for the attachment is now the label of the first sample text in the formula. Previous versions used a blank file name, making it hard to distinguish multiple formula attachments to a single message. You can change the label of any of the sample text in your formula by clicking on it in the list of samples on the Samples panel, waiting a second, and clicking again. This is the same method for renaming files in Windows Explorer.

Pressing Ctrl+C while keyboard focus is on the list of conversations or the list of messages on the Forum tab copies a URL to the selected conversation or message to the clipboard. This URL uses the regexmagic: URL scheme. Such URLs are now highlighted in forum messages too, and double-clicking them opens the forum message the URL points to. These URLs also work in other applications if RegexMagic is installed on the hard disk. When using a portable installation, the URLs work within the RegexMagic forum only and registering new URL schemes requires the host system to be modified, which portable installations won’t do.

See also: RegexMagic 1.0.3 version history

RegexMagic 1.0.2 – 5 August 2009

If you want to use the new RegexMagic button in RegexBuddy 3.4.0 (also released today), upgrading to RegexMagic 1.0.2 is required for the integration to work correctly in all circumstances.

RegexMagic 1.0.2 also brings several minor fixes. The “date and time” pattern was improved to make it correctly generate date formats that include whitespace when the Java flavor is selected and free-spacing mode is used. The “date and time” pattern will no longer be auto-detected when marking text that consists only of punctuation commonly used as date or time separators.

The source code template editor that you can access via the Edit button on the Use panel is now capable of downloading syntax coloring schemes. That is useful if you want to create a source code template for a programming language that RegexMagic doesn’t support out of the box, but for which a syntax coloring scheme is already available. RegexMagic uses the same syntax coloring schemes as RegexBuddy, PowerGREP, and EditPad Pro.

The dual monitor layouts in the View menu are now disabled on computers that have only one monitor.

See also: RegexMagic 1.0.2 version history

RegexMagic 1.0.1 – 28 July 2009

Bug fix: When Unmarking fields on the Samples panel deleted the field of which the Match panel was showing the pattern, that deleted pattern would remain visible, causing access violation errors if you tried to edit the pattern.

RegexMagic 1.0.0 – 22 July 2009

First public release of RegexMagic.