RegexBuddy 5.0.2 is now available for download.
Just a month ago we released RegexBuddy 5.0.0 which is a major upgrade from previous versions. The release has gone very smoothly. RegexBuddy 5.0.2 is a free minor update for those who have already purchased the upgrade, purchased a new RegexBuddy 5 license, or received the upgrade for free per our policy of one year of free major upgrades. All future RegexBuddy 5.x.x releases will also be free for all RegexBuddy 5 users, just like all RegexBuddy 4.x.x releases were free for all RegexBuddy 4 users.
RegexBuddy 5.0.1 (this version only) sometimes showed an access violation error upon startup; RegexBuddy worked correctly after dismissing the AV. This has been fixed.
RegexBuddy 5.0.0 replaced the Insert Token|Mode Modifier submenu with a dialog box. The dialog box supports all options that can be toggled via mode modifiers by any of the regular expression flavors supported by RegexBuddy, rather than just the main ones supported by most flavors. Unsupported options are grayed out. The dialog box is also aware of which options are already active, so it only adds the option letters that actually change any options to the mode modifier, instead of blindly setting the option chosen in the submenu. But this prevented from adding a mode modifier to the start of the regex with all the options to make it independent of any external regex options that you may not have control over in your actual application. To support this the dialog box now has an additional option “set all options at the start of the regex” to make this possible. This choice is available for regex flavors that support global mode modifiers that can turn options on and off. Some flavors, like Python, only allow a global mode modifier to turn options on. Both choices to set options at the start of the regex are now disabled for JavaScript because JavaScript only supports mode modifier groups.
Opening a sample file on the Test panel is now more efficient when the line break style of the file you’re loading is different from the line break style selected in the Test toolbar. The line break style is now converted before loading the file onto the Test panel instead of afterwards. If the Test panel is in hexadecimal mode (which you can toggle via the right-click menu) and you open a file in an encoding that does not use a constant number of bytes per character then the Test panel now automatically switches back to text mode. You can right-click the Test panel and select Encoding to convert the file to a different encoding or to interpret it with a different encoding. Scroll bars on the Test panel are now updated correctly when word wrap is off.
Windows 7 SP1 the oldest version of Windows that RegexBuddy 5 will run on. Versions 5.0.0 and 5.0.1 complained about a missing DLL api-ms-win-crt-string-l1-1-0.dll on Windows 7 systems on which no updates other than SP1 were installed. RegexBuddy 5.0.2 no longer depends on this DLL.
EditPad Lite 8.6.0 is now available for download.
The RegexBuddy icon on the Search toolbar, which opens RegexBuddy to edit the regular expression you’re using in EditPad, now shows the new icon for RegexBuddy 5. The actual integration is fully compatible with RegexBuddy 4 and 5.
On the Save Files you can configure EditPad to save working copies of files with unsaved changes every few minutes. The default setting is to save them every 5 minutes. Previously the actual interval was one minute longer than you specified. So by default working copies were actually saved every 6 minutes. Now actual interval is the one you specify. The minimum interval you can specify is still 1 minute. This now saves working copies every minute instead of every 2 minutes. If a file is empty in EditPad when the interval elapses, EditPad now deletes the working copy instead of saving an empty working copy.
The benefit of working copies is that they are left behind when your system crashes. When you open the file again after restarting, EditPad opens both the original file and the working copy. You can then decide whether you want to keep the unsaved changes preserved by the working copy or if you want to keep the original file. But an empty working copy doesn’t really prevent any data loss. Not saving empty working copies can reduce the number of working copies you have to deal with if your system crashes while you had a lot of files open in EditPad.
EditPad now includes two syntax coloring schemes for Visual Basic. The “Visual Basic.NET” scheme is unchanged. It works great with source code for Visual Basic 2013 and prior, including the legacy Visual Basic 6. The “Visual Basic 14 and later” scheme is new. The only difference between the two schemes is that the new scheme allows literal line breaks in strings. Visual Basic 14 changed the language specification to allow strings to span across lines. A side effect is that while you’re editing your code, any unterminated string affects the highlighting until the end of the file rather than just the remainder of the line it’s on. The same happens in Visual Studio 2015 and later. If you use literal line breaks in strings in your Visual Basic code then you can make EditPad do the same by selecting the “Visual Basic 14 and later” scheme for the “Visual Basic source code” file type on the Colors and Syntax page in the file type configuration. The original “VIsual Basic.NET” scheme is still the default.
EditPad Pro 8.6.0 is now available for download.
The RegexBuddy icon on the Search toolbar, which opens RegexBuddy to edit the regular expression you’re using in EditPad, now shows the new icon for RegexBuddy 5. The actual integration is fully compatible with RegexBuddy 4 and 5.
On the Save Files you can configure EditPad to save working copies of files with unsaved changes every few minutes. The default setting is to save them every 5 minutes. Previously the actual interval was one minute longer than you specified. So by default working copies were actually saved every 6 minutes. Now actual interval is the one you specify. The minimum interval you can specify is still 1 minute. This now saves working copies every minute instead of every 2 minutes. If a file is empty in EditPad when the interval elapses, EditPad now deletes the working copy instead of saving an empty working copy.
The benefit of working copies is that they are left behind when your system crashes. When you open the file again after restarting, EditPad opens both the original file and the working copy. You can then decide whether you want to keep the unsaved changes preserved by the working copy or if you want to keep the original file. But an empty working copy doesn’t really prevent any data loss. Not saving empty working copies can reduce the number of working copies you have to deal with if your system crashes while you had a lot of files open in EditPad.
The Editor page in the file type configuration has two options to automatically trim trailing whitespace. The “trim trailing whitespace” option trims trailing whitespace from a line you’ve edited when you move the cursor away from that line. So this happens while you’re editing your file and only affects lines that you’ve edited. The “trim all trailing whitespace upon save” trims trailing whitespace from all lines in the file, regardless of whether that whitespace was already there when you opened the file, when you save the file to disk. New in this release is that this option now also trims all trailing whitespace when you upload a file via FTP and when you save a file that was opened via FTP.
EditPad now includes two syntax coloring schemes for Visual Basic. The “Visual Basic.NET” scheme is unchanged. It works great with source code for Visual Basic 2013 and prior, including the legacy Visual Basic 6. The “Visual Basic 14 and later” scheme is new. The only difference between the two schemes is that the new scheme allows literal line breaks in strings. Visual Basic 14 changed the language specification to allow strings to span across lines. A side effect is that while you’re editing your code, any unterminated string affects the highlighting until the end of the file rather than just the remainder of the line it’s on. The same happens in Visual Studio 2015 and later. If you use literal line breaks in strings in your Visual Basic code then you can make EditPad do the same by selecting the “Visual Basic 14 and later” scheme for the “Visual Basic source code” file type on the Colors and Syntax page in the file type configuration. The original “VIsual Basic.NET” scheme is still the default.
PowerGREP 5.4.0 is now available for download.
The File Selector panel has an option to use regular expressions to define file masks instead of traditional wildcards. The hide files and folders configuration dialog has a similar option to use regular expressions to hide files and folders. All the predefined configurations for hiding files and folders use this option. These regular expressions are now case insensitive. This is more appropriate for the Windows file system which is also case insensitive. If you had actions that relied on these regular expressions being case sensitive then you can use the mode modifier (?-i) at the start of a regex to make it case sensitive.
The RegexBuddy icon on the Action toolbar, which opens RegexBuddy to edit the regex you have on the Action panel in PowerGREP, now shows the new icon for RegexBuddy 5. The actual integration is fully compatible with RegexBuddy 4 and 5.
The converter for Excel spreadsheets have been updated to fix some bugs that caused the converter to crash on a small number of .xlsx files. By default, PowerGREP remembers if it could not convert certain files and won’t try to convert those files again unless they have been changed on disk. This way PowerGREP doesn’t waste time trying to repeatedly convert files that it can’t, whether that is due to a bug in PowerGREP’s converter or a corrupt file. If you previously got errors when trying to search through Excel spreadsheets then after installing 5.4.0, go into the Cache section in the Preferences and clear the cache to make PowerGREP forget that it could not convert certain files in the past.
The list of steps in the Sequence panel allows you to change the width of its columns by dragging the gap between the column headers with the mouse. These widths are now preserved when you close and restart PowerGREP.
AceText 4.4.0 is now available for download.
This release adds new settings to the Preferences dialog. There is a whole new Syntax page. There you can associate each of the syntax coloring schemes that is available to AceText with one or more file masks. The Clip|Create Clip from Text File command uses these file masks to automatically assign a syntax coloring scheme to each clip it adds based on the name of the file that the clip’s text was loaded from. If you drag-and-drop a file from another application onto the clip tree in AceText then the file’s contents are added as a new clip. Such a clip too is now automatically assigned a syntax coloring scheme based on the file’s name. You should review the file masks. AceText comes with several sets of syntax coloring schemes that use the same file masks by default. For example, there are separate schemes for various SQL dialects. Even Visual Basic now has two schemes. The new one allows line breaks in strings like Visual Basic 14 (Visual Studio 2015) and later do. You should pick a preferred scheme and remove the file masks from the other to stop it from being assigned automatically. You can still manually assign schemes without file masks to clips and you can still select those schemes as defaults on the Applications and Windows pages in the Preferences.
The buttons for downloading syntax coloring schemes and spell check dictionaries and the buttons for customizing palettes were moved from the Appearance page to the new Syntax page in the Preferences.
If you use both AceText 4 and RegexBuddy 5 and you’ve customized the Regex and/or Use palettes in RegexBuddy 5 then you can now import those as Search and Editor palettes into AceText 4.4.0 after exporting them in RegexBuddy 5. RegexBuddy 5 can also import Search and Editor palettes exported by any AceText 4.x.x release as Regex and Use palettes. AceText is now also correctly imports palettes that it exported itself. Previously, trying to import a palette would add a palette with all colors set to “default“. The RegexBuddy icon on the Search toolbar in AceText now shows the new icon for RegexBuddy 5. The actual integration is fully compatible with RegexBuddy 4 and 5.
The Files page adds a third option to the ClipHistory group. In addition to completely purging the ClipHistory when closing AceText and to save the full ClipHistory, you can now choose to purge clips from the ClipHistory after a certain number of days. Previously, this option existed only for the Recycle Bin. When you select this option, AceText still saves the full ClipHistory at regular intervals and when you shut it down. But when you restart AceText it purges clips that have become stale. The option to purge clips after a certain number of days is independent of the limit for the maximum number of clips in the ClipHistory that you can set on the Operation page. That limit is enforced each time AceText automatically captures something into the ClipHistory. That limit cannot be disabled, but you can set it as high as 100,000 clips since AceText 4.3.1.
On the Hotkeys page you can enable the AcePure hotkey. When you press this hotkey, AceText removes all formats except plain text from the Windows clipboard. This hotkey now performs that task if you press it while AceText has keyboard focus instead of showing a message saying that it is intended to be used when another application has keyboard focus.
Pressing Ctrl+A when the list of clips or clip tree has keyboard focus selects all the clips in the collection. New is that Ctrl+A now deselects all clips if you press it when all clips are already selected. This makes it much easier to undo an accidental Ctrl+A.
RegexBuddy 5.0.1 is now available for download.
At the end of last month we released RegexBuddy 5.0.0 which is a major upgrade from previous versions. The release has gone very smoothly. RegexBuddy 5.0.1 is the first free minor update for those who have already purchased the upgrade, purchased a new RegexBuddy 5 license, or received the upgrade for free per our policy of one year of free major upgrades. All future RegexBuddy 5.x.x releases will also be free for all RegexBuddy 5 users, just like all RegexBuddy 4.x.x releases were free for all RegexBuddy 4 users.
RegexBuddy 5.0.0 added support for JavaScript’s /u flag. You can set this by selecting “Unicode flavor” instead of “default flavor” on the toolbar with regex options. This flag adds support for Unicode properties to JavaScript’s regex flavor. RegexBuddy 5.0.1 improves this support in a few ways. If you use Unicode properties in a JavaScript regex with “default flavor” selected, error messages on the Create and Test panels now say that JavaScript only supports Unicode properties when you select its Unicode flavor instead of saying that JavaScript does not support Unicode properties. If you enable tips on the Create panel then these error messages get an extra tip that explains that you need to select “Unicode flavor” instead of “default flavor“. Double-clicking the tip automatically changes this option. When you convert a regex to JavaScript, the conversion now automatically uses JavaScript’s Unicode flavor if the original regex flavor supports astral characters or if the regex uses any Unicode properties. This ensures your JavaScript regex also supports astral characters and that Unicode properties are converted without any errors (if the specific properties used by the regex are supported by JavaScript).
If you had a regex that set used start-of-string or end-of-string anchors like \A or \z and you set the option “^ and $ match at line breaks” (or the application forces this option) then converting the regex to a flavor such as JavaScript that supports the option “^ and $ match at line breaks” but not the anchors \A or \z resulted in a confusing error saying the target flavor does not have a mode modifier to turn off multi-line matching. Now the conversion is smarter about this. If the original regex does not use ^ or $ then the conversion turns off “^ and $ match at line breaks” so that \A and \z can be converted into ^ and $. If the original regex uses both sets of anchors then you now get a clearer error saying that the target application does not have anchors that can match only the start or end of the string when ^ and $ match at the start and end of each line.
RegexBuddy’s debugger is now clearly shows the matching steps of reversed matches. This happens with lookbehind with the .NET, JavaScript, and JGsoft regex engines because they process the part of the regex inside lookbehind from right to left. It also happens with lookahead with the .NET engine when using .NET’s right to left mode. This mode is newly supported in RegexBuddy 5. In RegexBuddy 4, the debugger didn’t retain the part of the text matched by lookbehind from one step to the next when the lookbehind needed multiple steps. RegexBuddy 5 does show the full matching process of the lookbehind. But version 5.0.0 had a bug that carried over the lookbehind’s match after the engine exits the lookbehind. Now, RegexBuddy 5.0.1 shows the full matching process of the lookbehind and discards that part of the match when the lookbehnid fails or succeeds, properly reflecting the fact that text matched by the lookbehind does not become part of the final match.
The debugger now properly updates its scroll bars when you scroll it using a mouse wheel or a two-finger gesture on a touchpad.
If you used RegexBuddy’s COM interface to integrate RegexBuddy 4 or prior with your application then this integration works unchanged with RegexBuddy 5. But if you want to support RegexBuddy 5’s expanded set of regular expression options then you’ll need to update your integration. The documentation now links to a set of three sample applications that demonstrate the integration with RegexBuddy 5. They are written in C#, Delphi, and Python.
RegexBuddy 5 is a major upgrade from previous versions. Nevertheless, when you start RegexBuddy 5, you’ll feel right at home. The user interface is basically the same as in previous versions. The most obvious changes are cosmetic. The new toolbar icons give RegexBuddy 5 the same fresh look as PowerGREP 5 and EditPad 8. But their main benefit is that they come in 10 different sizes that cover all the scaling increments from 100% to 400% available in the basic display settings in Windows. RegexBuddy can now correctly scale its toolbars on all PC and laptop displays, including small laptops with 4K screens. In the View menu you can now select a dark theme and a black theme. The black theme is the same theme that EditPad 8 uses as its dark theme. It uses pure black for window backgrounds. Its style fits well with Windows 10. The dark theme in RegexBuddy is a new theme that is less contrasty with dark gray backgrounds. Its style fits better with Windows 11. You can select either theme on any version of Windows. Or select the light theme to get the same look as RegexBuddy 4 (but with new toolbar icons).
Speaking of Windows versions, Windows XP and Windows Vista are no longer supported. The installer will check if you have Windows 7 or later and refuse installation if you don’t. If you upgrade to RegexBuddy 5 you will still be able to download RegexBuddy 4 in case you ever need it for a job on a legacy system that still runs Windows XP.
The most significant change in functionality is the significantly expanded list of supported applications. To see the full list of 530 applications (up from 292), select “more applications and languages” in the drop-down list in the top left corner. Maximize the dialog box to get a better overview. The list now gains columns if you make the dialog box wider. Tick your favorite applications to put them directly in the drop-down list. Different versions of the same application are listed and counted separately if there is any difference between their regex support.
Major new regex engines are RE2 and ICU. RE2 is developed by Google and used by Google Sheets and Google BigQuery which RegexBuddy 5 has built-in support for. Select RE2 directly to create regexes for any other application using RE2 or to generate code snippets to use the RE2 C++ classes directly. All versions going back to RE2 2017-05-01 are supported.
ICU stands for International Components for Unicode. It is used in many applications and frameworks to provide comprehensive support for Unicode and also regular expressions. RegexBuddy now supports ICU 55 and later. You can select “ICU C” or “ICU C++” to generate C or C++ code snippets to use the ICU library directly. Select either of these to generate regexes for any other application that is built using ICU. RegexBuddy has built-in support for LibreOffice, MySQL 8, and the R stringi package. For LibreOffice, select your LibreOffice version and RegexBuddy emulate the correct version of ICU. For MySQL and stringi, select “MySQL ICU” or “R stringi” with the ICU version that your MySQL or R installation was built against. Both “MySQL ICU” or “R stringi” provide a function labeled “check regex library version” on the Use panel to generate a code snippet to check which ICU version that should be.
Other newly supported programming languages with support for generating code snippets are F#, Python.NET and IronPython which are all based on the .NET regex flavor. TypeScript is based on JavaScript. wxWidgets uses Tcl’s ARE engine or PCRE2. Other newly supported applications are Google Sheets (JavaScript) and Notepad++ (Boost).
All previously supported applications and languages are now up-to-date with the latest releases. This includes C++Builder 12 Modern which is based on the libc++ instead of the Dinkumware implementation of std::regex. Oracle 18c and 21c are now supported, as are the latest Perl 5.40, PHP 8.3, and R 4.4.1. XML Schema and XPath are now based on the actual implementation in Saxon 10 to 12 rather than following our reading of the W3C recommendations. Saxon has its own ideas about a few things. XPath 2 and XPath 3 are now separate flavors. For JavaScript RegexBuddy 4 emulated only the latest version due to automatic browser updates. Now we’ve added support for Firefox 52 (the last version to support Windows XP or Vista) and Firefox 12 (the last to support Windows 2000 and similar to the original Firefox flavor in RegexBuddy 4.0.0) to provide a sampling of legacy JavaScript implementations. This can be helpful in porting old JavaScript applications to modern browsers. RegexBuddy is still capable of comparing and converting between all the regex flavors that it supports even though the number of combinations keeps increasing dramatically.
To keep things manageable, RegexBuddy 5 does drop support for some older versions. The reason is not so much that these flavors are all about two decades old now, but that we simply ran into to many issues (bugs and odd behavior) with these old flavors that they were getting in the way of properly supporting new flavors and more accurately emulating all flavors. Removed versions include Perl 5.8 to 5.12, PCRE 4.0 to 4.4, the PHP 4.x.x preg functions based on PCRE 4.x, Visual C++ 2008, and Oracle 10g. XRegExp support has been reduced to the latest version for modern browsers and the last version to support MSIE. If you load a library created with RegexBuddy 4.x.x that contains regexes using some of these removed versions then RegexBuddy 5 automatically changes those regexes to the oldest version of the same flavor that it still supports. This will cause those regexes to be interpreted (slightly) differently.
There are also two important changes to the ability to define custom applications in the “more applications and languages” dialog. The radio buttons to indicate support for making replacements and splitting strings were removed. Only the drop-down lists remain. You can select “application cannot search-and-replace” and “application cannot split strings” at the top of the drop-down list. Or you can select a search-and-replace flavor or split flavor that RegexBuddy knows to be compatible with your chosen regex flavor. The ability to select any replacement flavor or split flavor (compatible or not) was removed. This dramatically reduces the number of combinations we need to test and avoids problems with combinations that really don’t work together.
The other change is a new drop-down list labeled “external options flavor”. Most regex engines have options such as /s in Perl or RegexOptions.SingleLine in .NET that are set outside the regular expression. RegexBuddy 4 already knew which options are actually available in each application. It defined that as part of the regular expression flavor. RegexBuddy 5 now puts that information in a new type of “flavor” dedicated to just those external options. This makes it much easier to add proper support applications that are based on an existing regex flavor but don’t expose all of its options. This allowed us to easily add Notepad++ and LibreOffice, for example, using the Boost and ICU regex flavors. We only had to add two new “external” flavors specific to Notepad++ and LibreOffice. It also simplified some implementations. JavaScript and HTML5 are now based on the same JavaScript regex flavor, but with separate “external” flavors to indicate that HTML5 patterns don’t have external options and can’t find partial matches. Similarly, Delphi (TRegEx) and Delphi (TPerlRegEx) are now based on the same Delphi regex flavor as they only differ in which options you can set outside the regex.
RegexBuddy’s emulation of the syntactic and particularly the behavioral differences of all the regex flavors that it supports is now even more detailed and accurate than before. This is all based on very extensive testing of the actual regex libraries. Our test suite has ballooned from some 15,000 regexes for RegexBuddy 4.14 to over 98,000 regexes for RegexBuddy 5.0. In total, RegexBuddy 5 is aware of 1362 different aspects (syntactic and behavioral differences, up from 873) of 418 regular expression flavors (up from 295), and 221 aspects (up from 186) of 85 replacement text flavors (up from 67). If you thought most modern regex flavors were all pretty much the same: think again!
You can find the most important improvements listed as “aspects” in the version history. The majority of them are related to Unicode. RegexBuddy now fully supports all versions of Unicode from Unicode 3.0.0 until the latest 16.0.0, all of which are used by at least one application that RegexBuddy supports. RegexBuddy even knows that some regex flavors have inconsistent Unicode support. For example, .NET 4.8 was mostly based on Unicode 8.0.0, but its case folding tables were still based on Unicode 5.1.0. The list of Unicode blocks in .NET seems forever stuck at Unicode 4.0.1. Because of all these Unicode-related issues, if different versions an application are based on a different version of Unicode then RegexBuddy now treats those as separate regular expression flavors, even if there are no changes to the regex syntax. For example, RegexBuddy 4.14 has a single flavor for “Python 3.11–3.13”. But RegexBuddy 5 lists Python 3.11, 3.12, and 3.13 separately because it knows that these are based on Unicode 14.0.0, 15.0.0, and 15.1.0, respectively. New versions of Unicode do not just add more characters. Then can and often do change certain properties of existing characters as well. If you have a library saved with RegexBuddy 4 and load it into RegexBuddy 5 then regexes that used a flavor that has been separated into multiple flavors will be changed to use the oldest version. So a regex saved for “Python 3.11–3.13” in RegexBuddy 4 will be loaded using the “Python 3.11” flavor in RegexBuddy 5.
RegexBuddy itself now fully supports Unicode characters beyond U+FFFF. These are the Unicode characters outside the Basic Multilingual Plate. RegexBuddy now accurately emulates how each regex flavor deals with such characters. Some major regex engines, such as Boost and .NET, or JavaScript without /u, treat such characters as surrogate pairs. To allow you to properly test this, the Test panel now supports UCS-2 and UTF-16 as separate encodings. Switching between the two does not change the contents of your file. The UCS-2 encoding allows the Test panel to show if your regex matches half a surrogate pair, while the UTF-16 encoding allows supplemental plane characters to be matched properly as individual characters. The Operation page in the Preferences has new options to automatically change the encoding of the test subject to correspond with how your application works, be that 8-bit, surrogate pairs, or full Unicode. In hexadecimal mode, the Test panel now supports UCS-2 and UCS-4, allowing you to easily inspect 2-byte or 4-byte Unicode code points and see their corresponding characters.
The Create panel has gained a new level called “Precise” in addition to “Detailed” and “Brief”. This level explains everything RegexBuddy knows about each regex token. For anything related to Unicode that includes the Unicode version. Previously the “detailed” level did that. Now, the detailed level omits information that doesn’t really teach you how the regex works, such as the specific Unicode version. The “brief” level still keeps things simple, as before. For the regex \d, for example, the brief explanation may be (depending on the flavor) that this matches a digit. The detailed explanation would add whether that is an ASCII digit or a Unicode digit, which is an important distinction. The precise explanation adds the Unicode version, which doesn’t really matter if your application only needs to work with modern languages spoken by millions of people, which were all covered by Unicode 3.0.0 (the oldest version used by any flavor supported by RegexBuddy).
The Create panel can add extra nodes with tips to certain regular expressions. If your regex has a named capturing group, for example, then it can add a tip to unnamed capturing groups that mixing named and numbered groups is not recommended. RegexBuddy 4 added no tips to a brief tree, some tips to a detailed tree in strict mode, and all tips to a detailed tree in helpful mode. RegexBuddy 5 has a separate setting for the tips that you can set to “No tips”, “Key tips”, or “All tips” independent of the tree’s level of detail and the emulation mode. Key tips are tips that point to things that are more likely to be a problem or unintended. The tip about mixing named and numbered groups only appears if you select “All tips”.
Exporting the regex tree to HTML has been significantly improved and you can export the replacement tree as well. Syntax coloring is now preserved. The CSS needed for syntax coloring and the JavaScript needed for highlighting corresponding tokens and explanations can now be put into separate CSS and JS files. You can now export the regex or replacement tree as a PNG image or copy it to the clipboard as a bitmap. This includes the regex tree icons.
On the Convert panel you can now select an encoding or Unicode version to indicate which characters your regex will actually work with. This can reduce the number of warnings you get. For example, if you convert \d between two flavors that support it to match Unicode digits but one flavor uses a newer Unicode version that defines additional digits, then the Convert panel warns about that. You can suppress the warning by selecting an encoding or an older Unicode version that does not include those newer digits. It can also change the result of the conversion. If you set the encoding to “US ASCII”, for example, then \d is always converted into \d if both flavors support it to match a digit. RegexBuddy assumes that any Unicode-issues were ignored when the original regex was created and does the same for its conversion. But if you select one of the Unicode options, and the original flavor matches only ASCII digits with \d and the target flavor matches Unicode digits with \d then RegexBuddy converts the regex into [0-9] instead to preserve the fact that the original regex only matched ASCII digits.
The Convert panel has a new Test button which compares the results of the original regex using the original regex flavor and the converted regex using the conversion flavor on the Test panel. If they find the same matches in your sample text then you get a message saying so. If they find different matches then the differences are highlighted in the test subject.
The Test panel can now highlight zero-length matches by highlighting the space between two characters. Capturing groups inside lookaround that extends beyond the overall regex matches are now highlighted as long as they don’t overlap with the preceding or following match. There is a new option to highlight the first match only for those who want to emulate not setting the “global” flag in their regex engine. When the test subject and test result have the same number of lines, such as after a search-and-replace, scrolling one of them automatically scrolls the other to the same line, making it much easier to compare them.
The test results are shown in an editor control. This makes the results easy to work with, but can cause issues when the results include tabs or line breaks as those are also used to arrange the results in columns. RegexBuddy now substitutes tabs or line breaks representing tabs and line breaks when adding matches or replacements to test results that use tabs and line breaks to arrange the results. Test results listing multiple matches but not in columns now let you specify a custom delimiter. Choose something that does not occur in your matches to properly separate them.
Debugging a regular expression is now a lot more interesting when you have the Debug and Test panels arranged side by side. While the Debug panel has keyboard focus the Test panel shows the same highlighting as the line in the debugger that the cursor is on. Moving the cursor down on the Debug panel lets you see how the match attempt advances on the Test panel.
The GREP panel now has a Fold All button that folds all file headers, hiding all the matches. Unfold All does the opposite. Turning on “invert results” no longer automatically turns on “line-based”. Turning on only “invert results” produces a list of files in which your regex cannot find any matches.
Finally, to return to cosmetic features, many more predefined color palettes and many more palette customization options are now available. There are “Solarized” and “Harmonized” palettes with reduced contrast and monochrome palettes for which the color picker only shows a limited set of colors. For these palettes, the picker shows all the colors used in the selected palette in the order that they are first used so you can easily use exactly the same color for multiple elements. There are also new palettes optimized for the most common types of color blindness.
The regex palettes have additional named colors which make it possible to separately configure the appearance of alternation, anchors, quantifiers, character escapes, lookaround, and capturing groups. Groups no longer need to use all five nesting levels. The default palette has been updated to use several of these new features for more distinct highlighting and is overall a little less saturated. The new Visual Studio palettes rely on the new named colors to mimic how Visual Studio’s code editor highlights regular expressions. New RegexBuddy 4 and RegexBuddy 3 palettes enable RegexBuddy 5 to highlight regexes in the same way previous versions of RegexBuddy did.
You now have more options to customize individual colors. Many different underlining styles are now available, including a wavy underline. Underline can now use a different color than the font. You can now add a strikeout, which can have the same or a different color as the font. Bold and italic now offer an “unchanged” choice that uses the style selected in the text layout configuration; this allows the “off” choice to force bold or italic to be off. The new Copy and Paste buttons make it easy to apply the same settings to the another named color. Selecting “default” as the background, text, or underline color for selected text now leaves that color unchanged when text is selected instead of using the highlighting colors of the Windows theme. This allows syntax coloring to remain visible when text is selected.
RegexMagic 2.13.4 is now available for download.
RegexMagic now officially supports Boost 1.89, Java 24, and Delphi 13. These regex flavors are unchanged compared with previous versions.
To add a literal regular expression or replacement text to your source code, you typically need to format it as a literal string, which usually requires quotation characters and possibly other characters to be doubled or escaped. RegexMagic knows the rules for literal strings or literal regular expressions for all the programming languages that it supports. It uses them when adding your regex to a source code snippet on the Use panel. It also lets you convert your regex and replacement into a literal string via the Copy button on toolbar on the Regex panel. It has a drop-down menu that list all the available string styles.
For this release we’ve thoroughly retested RegexMagic’s code for converting regular expressions and replacements into source code strings. We fixed an issue with formatting a replacement text that ends with a single quote as a Groovy string. We fixed another issue with formatting a replacement text text that contains backslashes as a Tcl string.
HelpScribble 8.3.4 is now available for download.
HelpScribble’s HelpContext property editor now supports Delphi 13 Florence and C++Builder 13 Florence. HelpScribble’s installer will automatically install it into both the 32-bit IDE and the 64-bit IDE if it detects that you have Delphi 13 Florence or C++Builder 13 Florence installed. HelpScribble’s HelpContext property editor can assign HelpContext properties to controls in VCL applications and Multi-Device applications.
With the Import Help Project command you can import old WinHelp projects from a pair of HPJ and RTF files. WinHelp requires topic properties such as the context string (topic identifier), titles, and keywords to be stored in footnotes. HelpScribble’s importer had a bug that caused it to ignore footnotes that consist of a single letter. Because of this, topics with single-letter context strings were not imported at all. Topics with single-letter titles or keywords were imported without their title or keyword. Single-letter context strings are extremely rare. The WinHelp decompiler assigns an 8-character context string to each topic. So if you imported a decompiled HLP file then you did not lose any topics due to this bug.
DeployMaster 7.5.1 is now available for download. This release fixes two bugs.
One bug was introduced with DeployMaster 7.5.0. If you had previously saved a .deploy file that used the option to completely cover the screen background on the Appearance page then the background preview would appear in front of DeployMaster if you opened that .deploy file by double-clicking it on Windows Explorer. The problem did not occur if you started DeployMaster using its desktop icon and then clicked the Open button to open the file. The correct behavior, which has now been restored, is for DeployMaster to start with the Project page active and no background preview when you double-click a .deploy file in Windows Explorer. The background preview appears behind DeployMaster only while the Appearance page is active.
The other bug is more serious and dates back to DeployMaster 4.0.0. We discovered it after further testing of the new /portable command line parameter that is newly supported in installers built with DeployMaster 7.5.0 to force a portable installation in combination with the existing /silent parameter to fully automate the installation. The issue occurs if the readme file, license agreement, or support DLLs specified on the Project page or the background bitmap specified on the Appearance page are also added as files to be installed on the Files page. You may want to do this with the readme file and license agreement, for example, so the user can refer to these documents again after installation. When passing /silent /portable to an installer built with DeployMaster 7.5.0 it would pop up errors that these files could not be installed. This led us to discover that passing only /silent to an installer built with any version of DeployMaster also fails to install those files, but doing so silently. These files are handled differently because the installer needs to extract them before the actual installation starts so it can display them as part of the installation prompts. These files are reused rather than extracted again when they need to be installed. But silent installations do not initially extract these files, making them unavailable for reuse during the actual installation.
This bug has now been fixed. Silent installations now properly install all files, including the files used on the Project and Appearance pages. If your installer uses files on the Project or Appearance pages that you also added to the Files page, and your users may want to run your installer with the /silent parameter, then you should rebuild your installer with DeployMaster 7.5.1 to make sure these files are installed.