How To Get The Latest Version of PowerGREP

PowerGREP 5 was released on September 6th, 2016. If you purchased PowerGREP on or after September 6th, 2016, then you purchased PowerGREP 5 and you can download the latest version immediately. If you purchased PowerGREP between September 6th, 2015 and September 6th, 2016, then you purchased PowerGREP 4 and got a free major upgrade to PowerGREP 5. You should have received an email with a new user ID to download it. If you missed that email, enter your email address on the download page and it will be resent.

If you purchased PowerGREP prior to September 6th, 2015, then you own PowerGREP version 2, 3, or 4. If you download PowerGREP again, you will receive PowerGREP 2.3.3, 3.5.8, or 4.7.1, which is the last free minor update for you. PowerGREP 5 is a major upgrade from PowerGREP 4, with many new features and significant enhancements. Since you already own a previous version, you can buy version 5 at the discounted price of US$ — instead of the full price of US$ — which new customers pay. That’s a 50% discount!

If you are not sure whether you own version 5 or an earlier version, simply type in your user id and email address below. If you own version 2, 3, or 4, you will be presented with the form to purchase the upgrade. If you own version 5, you will be told you can download the latest version free of charge.

You can upgrade to PowerGREP 5 via our secure online checkout. We accept all major credit cards, debit cards, and prepaid cards. You can also pay by bank transfer. When paying with a card or another instantaneous payment method you will be able to download PowerGREP 5 immediately after completing checkout.

Please enter the email address associated with your current PowerGREP license, and your PowerGREP user ID. If you lost your user ID, you can have it resent instantly by entering your email address on the download page. If you have your user ID, it doesn’t matter if the email address no longer works. You can enter new contact details on the order form.

Email address:
PowerGREP user ID:
Number of users to upgrade: (omit to keep the same number of users)

The exact pricing depends on the number of users you want the upgraded license to be valid for. If you leave the “number of users to upgrade” box blank, then your PowerGREP 5 license will be valid for the same number of users as your previous PowerGREP license. If you want to increase or decrease the number of users, enter the total number of users that the upgraded license should be valid for. If the number of users you want to upgrade is the same or less than you had on the original license, then the price is calculated using the following table with the volume discount for the number of users you are upgrading. If the number of users you want on the upgraded license is greater than you had on the original license, then the price is the sum of the upgrade cost for the users on the original license with the volume discount for the number of users on the original license, plus the new user price for the additional users with the volume discount for the total number of users on the upgraded license. For larger quantities than listed below, please contact us.

PowerGREP Upgrade to Version 5Package PriceUnit Price
PowerGREP single user upgrade to version 5US$ 79.95US$ 79.95
PowerGREP 5-user upgrade to version 5US$ 299.00US$ 59.80
PowerGREP 10-user upgrade to version 5US$ 549.00US$ 54.90
PowerGREP 20-user upgrade to version 5US$ 949.00US$ 47.45
PowerGREP 30-user upgrade to version 5US$ 1,199.00US$ 39.96
PowerGREP 50-user upgrade to version 5US$ 1,799.00US$ 35.98
PowerGREP 75-user upgrade to version 5US$ 2,299.00US$ 30.65
PowerGREP 100-user upgrade to version 5US$ 2,699.00US$ 26.99

Prices shown on our website exclude taxes. Sales tax, VAT, or GST will be added during checkout if your country imposes such taxes on internet sales. You will have the opportunity to provide a tax ID or VAT number to remove the tax if your business is tax exempt.

Why Upgrade

High Resolution Toolbar Icons

The most apparent change in PowerGREP 5 are the new toolbar icons. The new flat look of the icons better matches the flat look of Windows 10. PowerGREP includes them in 10 different sizes that cover all the scaling increments from 100% to 400% available in the basic display settings in Windows. PowerGREP can now correctly scale its toolbars on all PC and laptop displays, including small laptops with 4K screens.

Tick and X marks that indicate whether files are included or excluded in the files and folders tree on the File Selector panel are now scaled on high DPI systems, making them the same size as the file and folder icons they sit next to. The various file types that PowerGREP uses now have distinct icons in Windows Explorer and other file managers so you can distinguish files with similar names but different extensions more easily.

File and Archive Formats

The most significant changes in PowerGREP 5 concern its handling of file and archive formats. In previous versions of PowerGREP, file formats, archive formats, text encodings, and permanent exclusion were all configured in the Preferences. The problem with that was that a PowerGREP Action File (*.pga) did not uniquely define the action, because its exact execution depends on settings made in the Preferences, making it difficult to ensure consistency in future runs of the action, and making it difficult to adjust file format settings to fit each action. Particularly this latter aspect made it necessary to move these settings out of the Preferences. PowerGREP 5 supports many more file formats and some in multiple ways. One configuration can no longer fit all actions.

File formats, archive formats, text encodings, and permanent exclusion are now all configured on the File Selector panel. You can select existing configurations directly from drop-down lists. You can edit all configurations or add your own via the (...) buttons. There are many predefined configurations that cover most scenarios. You can still edit these via the Preferences. But the configurations you choose in the Preferences now only act as a default. The configurations you choose on the File Selector panel are the ones used when executing the action. When you save a PowerGREP File Selection (*.pgf) or PowerGREP Action (*.pga) file, the actual configurations are saved. This ensures that when you load the .pgf or .pga file later, you will be using the exact same settings as when you saved it. If you edited one of the configurations in the mean time, the loaded settings will appear with a (2) in the drop-down list, to indicate the loaded settings are not the same as those of the existing configuration with the same name.

If you load a .pgf or .pga saved with a previous version of PowerGREP then PowerGREP 5 will add configurations named PowerGREP 1, 2, 3, or 4 with the default preferences from that version of PowerGREP. You should review these legacy configurations as they disable the file and archive formats newly supported by PowerGREP 5.

PowerGREP has long been able to convert popular file formats like PDF and Office files into plain text so they can be searched through. In PowerGREP 4 and prior, such conversions were one-way, making it impossible to make changes to such files. Now, PowerGREP includes two-way converters for certain file formats. This means you can search-and-replace through DOCX files (Word 2007 and later), ODT files (OpenOffice Writer), JPEG/EXIF metadata, Audio file metadata (MP3, FLAC, WMA, etc.), CorelDRAW metadata, MIME email messages (EML files), web archives (MHT files saved by IE), Windows shell links, and AceText collections.

HTML and RTF files can now be converted to plain text too. These conversions are also two-way. You can search or search-and-replace through HTML and RTF files without having to deal with HTML tags or RTF codes. This is also the best example of why there are now many configurations that you can select directly on the File Selector. Select “all formats” or “all writeable formats” if you want HTML and RTF to be converted to plain text. Select “proprietary formats” or “writeable proprietary formats” if you want to search through the raw HTML and RTF, while still converting files like Office files that require conversion to be searchable.

XPS and OXPS files ((Open) XML Paper Specification) can now be searched through. XPS files do not necessarily store text in a meaningful order. PowerGREP mimics the visual page layout as much as possible to make it easier to get meaningful search results. XPS is a virtual paper format that, like PDF, is not designed to be editable. PowerGREP cannot make changes to XPS files.

Conversion of many previously supported formats has been improved. PowerGREP no longer needs an IFilter to convert DOCX and ODT files. PDF files can now have their text converted in reading order. Mimicking the visual page layout is still the default.

PowerGREP can now search inside more archive formats. PowerGREP can now compress and decompress individual files and tarballs using LZMA. PowerGREP can now search inside (but not modify files inside) compressed and uncompressed CPIO archives. The Search Archives item in File Selector menu, which was all or nothing, has been replaced with the archive format configuration on the File Selector panel. This allows you choose which specific archive formats you want to search through.

PowerGREP can now search through email. PowerGREP supports MBOX mail folders, used by qmail, Thunderbird, and many other email clients and servers. PowerGREP also supports Outlook mail folders (PST files) and Outlook Express mail folders (DBX files). The archive format configuration determines whether PowerGREP searches through mailboxes or not. When enabled, MBOX, PST, and DBX files appear as folders in the File Selector, with the email messages as files under them.

PowerGREP 5 supports Outlook email messages inside PST files and stored separately as MSG files. It also supports MIME email messages and UUEncode email messages inside MBOX or DBX files and stored separately as EML files. In the file format configuration, you can choose whether PowerGREP should convert these files to plain text or treat them as compound documents. Converting to plain text treats each email as a single file containing the message body text. Treating as compound documents treats emails with attachments as folders that contain the body text as a file plus all attachments as separate files. The predefined file format configurations labeled “attachments” use the latter option.

More File Selector Improvements

After running a search that covers a large number of files, like you entire C drive, the File Selector panel could be slow to respond to changes, like entering new file masks. Now such changes are applied instantly, even after running a large search. Expanding large folders could be slow as PowerGREP retrieved file-specific icons. Particularly retrieving icons for executable files while an on-access virus scanner is active can be quite slow. Now, the File Selector displays generic icons for all files.

Clipboard and Editor nodes in the files and folders tree allow you to mark the contents of the clipboard and PowerGREP’s built-in editor to be processed by a PowerGREP action. Even making replacements is possible.

New include folders and exclude folders boxes allow you to specify file masks to include or exclude folders based on their names. Excluding folders using “exclude folders” is more efficient than using file masks with backslashes with “exclude files”, like you had to do previously, because PowerGREP does not need to glob folders that are excluded entirely.

File sizes are no longer rounded to the nearest kiB, MiB, or GiB and you can enter numbers beyond 32767, making searches for exact file sizes possible. Sizes can now be specified as multiples of 1,000 (kB, MB, GB) as well as multiples of 1,024 (kiB, MiB, GiB).

Action Panel Improvements

The “file name search” and “rename files” action types are now called “file or folder name search” and “rename files or folders”. The “what to search through” and “what to rename” options now give you a choice between files, folders, or files plus folders. When searching through folder names, you can use new target types to copy or move matched folders. Folders can be copied or moved as a whole with all their contents (ignoring permanent exclusion settings), backing up the target folder if it exists as a whole. Alternatively, the contents of matching folders can be copied or moved, skipping files that are permanently excluded, merging the folder with the target folder if it exists, backing up any overwritten files separately.

The new “file or folder name collect” action type complements the “file or folder name search” action type in the same way that the “collect data” action type complements the “search” action type. It allows you to collect parts of the names of files or folders into a new file using replacement text syntax for the text to be collected, with the option to apply extra processing. Headers and footers can be added to the target file too. This makes it easy to collect a list of files that is more than a bare list of file names.

The new “count matches” action type counts the number of times each search term matched in each file or in all files. The results show the list of search terms (or their labels if you labeled them) rather than the list of actual matches. Search terms without matches are included in the results. Regular expressions that find many different matches have all their matches counted towards the regex, rather than counting how many times each different match is found like the other action types do.

You can now use placeholders in file headers and footers. This includes all existing placeholders related to the action or the file. %MATCHCOUNT% can now be used in source and target file footers to write the number of matches found in the source file or the number of matches written to the target file. The new %FILECOUNT% placeholder can be used in target file footers to write the number of source files that had their matches written to that target file. While the existing %GUID% placeholder changes with each replacement, the new %GUIDFILE% placeholder only changes with each file, while %GUID1% through %GUID9% change only when you start executing the action or sequence. These new placeholders allow the same GUID to be used in the replacement text in multiple places.

All action types that offer the “save results into a single file” target file creation option, now offer additional “copy to clipboard” and “store in editor” target types. This way you can have the results put onto the clipboard or into PowerGREP’s built-in editor directly, without saving them to file first.

When the Action panel is large enough to allow multi-line edit controls to expand beyond their minimum size, these are now resized automatically based on the number of lines of text they contain. This happens when you edit their text and when you resize the panel. This reduces the amount of space wasted for controls with little or no text. This leaves more space for those with many lines, reducing their need for scroll bars.

Regular Expressions

PowerGREP’s regular expression syntax has been extended to support the newest features from other regex flavors. PowerGREP now supports balancing groups like the .NET regex flavor and branch reset groups like Perl and PCRE. Also new is character class intersection using the [class&&[intersect]] syntax like Java and Ruby. The nested pair of square brackets is required. PowerGREP does not support the [class&&intersect] syntax as this could lead people to write [class&&intersect&&again] which behaves unpredictably in Java and Ruby.

In Perl and PCRE you can use \K to keep text out of the match to work around their restrictions on lookbehind. While \K is not really needed in PowerGREP with its unrestricted lookbehind, you can now use \K in PowerGREP like you would in Perl or PCRE if you are used to writing your regexes that way.

Perl, PCRE, and Ruby all support regular expression recursion and subroutines. These three have largely copied each others syntax, resulting in multiple ways to write recursion and subroutines. But these three have not copied each others matching behavior, resulting in clear behavioral differences despite the similar syntax. PowerGREP provides three sets of syntax for recursion and subroutine calls. Each set of syntax follows the matching behavior of one of these three flavors. Like in PCRE, (?P>name) does not capture, reverts capturing groups, and is atomic. You can remember this syntax by its similarity to that of atomic groups. Unlike PCRE, PowerGREP also supports (?P>1) and (?P>0) so you can specify this behavior for a numbered call and for recursion. Like in Perl, (?R), (?1), and (?&name) do not capture, revert capturing groups, and allow backtracking. You can remember this syntax by the ampersand that is used in &subroutine(); calls in Perl code. Finally, like in Ruby, \g<0>, \g<1>, and \g<name> capture the match of the subroutine call, do not revert capturing groups, and allow backtracking. You can remember this syntax by the fact that Ruby’s regex flavor does not support any other syntax for recursion and subroutine calls.

\h is a new shorthand character class for horizontal whitespace. It includes spaces, tabs, and all Unicode whitespace except line and paragraph breaks. \v used to be an escape that matches the vertical tab. Now \v is a shorthand for vertical whitespace. This includes the vertical tab, line breaks, page breaks, and paragraph breaks. \v matches CR and LF separately. \H and \V are the negated versions of these two new shorthands.

\R is a new special escape that matches any line break, including Unicode line breaks. What makes it special is that it treats CRLF pairs as indivisible. It matches CR and LF on their own when they occur in the subject string on their own. But when the subject string contains CRLF as a sequence, \R matches the entire CRLF pair.

\l and \u are now shorthands for \p{Ll} and \p{Lu}. These match any Unicode lowercase or uppercase character. These tokens are always case sensitive.

POSIX classes using the notation [[:alpha:]] now match only ASCII characters. The \p{Alpha} notation still matches Unicode characters. [[:d:]], [[:s:]], [[:w:]], [[:l:]], and [[:u:]] are now shorthands for [[:digit:]], [[:space:]], [[:word:]], [[:lower:]], and [[:upper:]]. You can treat them as ASCII-only versions of \d, \s, \w, \l, and \u.

\i and \c are now XML shorthand character classes. \cA through \cZ are no longer supported as control character escapes.

Octal escapes must now be written as \o{377}. The octal number can range from \o{0} to \o{177777}. The old \0377 syntax is now an error. PowerGREP has never supported \377 as that is too confusing with the syntax for backreferences. \0 too is now an error, instead of matching a literal zero. Use \x00 to match NULL bytes.

Replacement Strings

Since version 1.0 PowerGREP has made it possible to replace different search matches with different replacements by using a list of search terms where each search term has its own replacement. With the non-overlapping search option, this is just as efficient as searching for a single regular expression. But sometimes it can be more practical to use a single regular expression with different replacement strings.

PowerGREP’s replacement string syntax has been extended with replacement string conditionals to make this possible. (?1matched:unmatched) and ${1:+matched:unmatched} insert matched if the first capturing group participated in the match or unmatched if it did not. Just like conditionals in the regular expression, a capturing group that finds a zero-length match is considered to have participated. The first syntax is borrowed from Boost. The second from PCRE2. When using named capturing groups, you can use (?{name}matched:unmatched) and ${name:+matched:unmatched} to reference them in replacement string conditionals. You can use the full replacement string syntax inside a conditional, including nested conditionals. Conditionals that reference non-existing groups are an error. If you want to insert the text captured by the group when it participated and something else when it did not, you can use ${group:-unmatched}.

As a consequence of adding this syntax, PowerGREP 5 treats \?, \:, \(, \), \{, and \} as escaped characters that insert one of these six punctuation characters literally. PowerGREP 4 and prior treated these as literal backslashes, inserting both the backslash and the following punctuation character literally into the replacement.

Upgrade your copy of PowerGREP now.