Introduction

FileMenu Tools lets you customize the context menu which is displayed when you click with right button of mouse over Windows Explorer, My Computer or Desktop. This application lets you configure the following aspects of the context menu:

· Add some built-in utilities in order to do operations over both files and folders. This utilities are:
· Run With Parameters.
· Command Line From Here.
· Copy/Move.
· Duplicate Files.
· Pack to Folder.
· Unpack Folder.
· Copy Path.
· Copy UNC Path.
· Copy Internet Path.
· Copy Name.
· Copy Content.
· Paste Clipboard.
· Attributes.
· Change Time.
· Split/Join File.
· Register/Unregister DLL.
· Find and Replace.
· Advanced Renamer.
· Change Icon.
· Advanced Delete.
· Synchronize two folders.
· Delete Locked File.
· Delete and no move to Recycle Bin.
· Shred Files.
· Create New Folder.
· Size of Folders.
· Send to mail recipient.
· Select.
· Create Symbolic Link.
· Calculate and Verify Checksum.
· Delete Empty Folders.
· Add custom commands which lets you run external applications, copy/move to a specified folder, delete specific file types, rename files or send the files to an e-mail recipient.
· Customize the "Send to..." menu.
· Enable/Disable the commands which are added by other applications to the context menu.

The configuration window of FileMenu Tools is displayed below:


Commands of FileMenu Tools

FileMenu Tools lets you add both custom commands and some build-in utilities in order to do operations over both files and folders from the Windows Explorer. The built-in utilities are:

· Run With Parameters.
· Command Line From Here.
· Copy/Move.
· Duplicate Files.
· Pack to Folder.
· Unpack Folder.
· Copy Path.
· Copy UNC Path.
· Copy Internet Path.
· Copy Name.
· Copy Content.
· Paste Clipboard.
· Attributes.
· Change Time.
· Split/Join File.
· Register/Unregister DLL.
· Find and Replace.
· Advanced Renamer.
· Change Icon.
· Advanced Delete.
· Synchronize two folders.
· Delete Locked File.
· Delete and no move to Recycle Bin.
· Shred Files.
· Create New Folder.
· Size of Folders.
· Send to mail recipient.
· Select.
· Create Symbolic Link.
· Calculate and Verify Checksum.
· Delete Empty Folders.

From Commands of FileMenu Tools tab of the configuration window, it is possible to configure both the customized commands and the build-in commands which will be displayed in the context menu of the Windows Explorer. On left side of each command exists a check box. If this check box is checked, the command will be displayed in context menu, in other case the command will be not displayed.

In both the Actions panel and the toolbar exist the following actions:

· Add Command. Add a new customized command. The properties are configured from the Properties panel.
· Add SubMenu. Add a new submenu to the context menu. To the submenus is possible to add either new elements or existing elements. In order to move existing elements into a submenu, you must drag and drop with the mouse pointer over the submenu. The text and icon to be displayed in the context menu must be configured from the Properties panel. Also it is possible to configure the submenu so when only a command is displayed in submenu, then that command is displayed in place of submenu. This can be configured with "Replace Single Command" option.
· Add Separator. Add a new separator.
· Delete. Remove the selected item. Only customized commands, submenus and separators can be removed. The build-in commands cannot be removed; if you wish to remove them from the context menu, you must uncheck the check box on left side of the command.
· Move Up. Move up the selected item.
· Move Down. Move down the selected item.


Run With Parameters

This utility lets you run a program with parameters typed through a dialog box.

This utility is displayed only for files with the following extension: .exe, .dll, .bat.


Command Line From Here

This utility opens a command line window whose working folder is the selected folder from the Windows Explorer.

This utility is displayed only when a folder is selected.

NOTE: if you wish to run the Command Line window as administrator, then press either CTRL or SHIFT keys.


Copy/Move

This utility lets you copy/move the selected elements to other folder.

It shows the following window:

In order to copy/move to a specific folder, write the folder in Target Folder field, or select the folder either in the browser or in the Favorites list.

The folders which you use oftentimes can be added to the Favorites list. The Favorites are accessible from the Favorites tab. In order to add a folder to Favorites, write the folder in Target Folder field or select the folder in the browser, and click over Add to Favorites button from the Favorites tab.

If a file to copy/move exists in the target folder, by default a message box will be showed in order to ask you if you wish overwrite the file or not. If you don't want to be asked, the Overwrite existing files check box must be checked, and then all the existing files will be overwrited automatically.

Copy/move specific files

By default all the files are copied/moved recursively. If you want, you can copy/move specific file types only. From the combo box Files to copy/move, you can choose three options:

· All files. This options will copy/move all files and folders.
· Only files which match the filters. If checked, only the files which match the filters specified in Filters field will be copied/moved.
· Only files which do not match the filters. If checked, all the files will be copied/moved except the files which match the filters specified in Filters field.

The Filters field must contain each filter separated with a semicolon. The filters can contain the wildcard characters either * (zero or various characters of any type) or ? (a character of any type). For example, to match files with .exe extension or with .dll extension, you must use the following filter: *.exe;*.dll


Duplicate Files

This utility duplicates the selected elements in the Windows Explorer. The copy is created in the same folder and the file name is changed by adding " - copy" suffix. If already an element exists in the folder with the same file name, then a number will be added to the file name so never it matchs with an existing element.

For example: if you duplicate the file "file.txt", then in the same folder will be created a copy of the file with name "file - copy.txt"


Pack to Folder

This utility moves all the selected elements to new subfolder in the current folder. You wil be asked for the name of this new subfolder.


Unpack Folder

This utility moves all the elements into the selected folders to the parent folder, and deletes these empty folders.

Example: if you apply Unpack Folder over the folder1 and folder2 with the following folder structure:

parent_folder

folder1

file1-1.txt

file1-2.txt

folder2

file2-1.txt

file2-2.txt

folder3

file3-1.txt

file3-2.txt

file1.txt

file2.txt

file3.txt

the resulting structure will be:

parent_folder

folder3

file3-1.txt

file3-2.txt

file1-1.txt

file1-2.txt

file2-1.txt

file2-2.txt

file1.txt

file2.txt

file3.txt


Copy Path

This utility copies to the Clipboard the path of all the selected elements in the Windows Explorer.

You can type some of following keys in order to change the default behaviour:

· CONTROL: the short name will be copied to the Clipboard.
· SHIFT: the file paths will be enclosed with quotes.


Copy UNC Path

This utility copies to the Clipboard the path of all the selected elements with UNC format (Universal Naming Convention). The format is "\\Machine\SharedResource\Path". If the selected elements are not in a shared resource, then the normal full paths will be copied to the clipboard.

You can type some of following keys in order to change the default behaviour:

· CONTROL: the short name will be copied to the Clipboard.
· SHIFT: the file paths will be enclosed with quotes.


Copy Internet Path

This utility copies to the Clipboard the path of all the selected elements with Internet format. This is to add the string "file://" at the beginning of the full paths.

You can type some of following keys in order to change the default behaviour:

· CONTROL: the short name will be copied to the Clipboard.
· SHIFT: the file paths will be enclosed with quotes.


Copy Name

This utility copies to the Clipboard the name of all the selected elements in the Windows Explorer.

You can type some of following keys in order to change the default behaviour:

· CONTROL: the short name will be copied to the Clipboard.
· SHIFT: the file names will be enclosed with quotes.


Copy Content

This utility copies to the clipboard the content of the selected element in the Windows Explorer. If a file is selected, its content is copied; and if a folder is selected, the list with the name of all the files and all the subfolders that the selected folder contains is copied.


Paste Clipboard

This utility appends the clipboard contents into the selected elements. If a folder is selected, then will be created a file in that folder with the clipboard contents.

This utility only works with text files and with clipboards which contain text only.


Attributes

This utility lets you view and change the attributes of the selected elements from the Windows Explorer. It shows a submenu with all the available attributes. The attributes can be:

· Read only. Indicates if the element is read only, and therefore its content cannot be changed.
· Hidden. Indicates if the element is hidden, and therefore it will be not showed in Windows Explorer (unless the Windows Explorer had been configured to show hidden elements).
· System. Indicates if the element is a special element used by Windows.
· Modified. Indicates if the element has been modified after creating it.
· Compressed. Indicates if the element is compressed (only for NTFS file system).
· Encrypted. Indicates if the element is encrypted (only for NTFS file system).

If a specific attribute is activated, the option in the submenu display aon left side.

If the selected element in the Windows Explorer is a folder, the submenu Change in subfolders is enabled. The attributes changed from this submenu, will be changed recursively for all files and subfolders that the selected folder contains.

There are two menu commands which allow to show / hide certain file types in Windows Explorer: show hidden files and show system files. Also the menu contains a command to toggle the file extensions.


Change Time

This utility changes the creation time, the last write time and the last access time of the selected files in the Windows Explorer.

With each type of date there are four options:

· Not change.
· Change to specific date and/or time. Enter the date and/or the time in the corresponding fields. If you uncheck the date checkbox, then the date will not be changed; and if you uncheck the time checkbox, then the time will not be changed. So it is possible to change at once both the date and the time, or only one of them. If you click on Now button, then the date/time will be changed to the current time.
· Add time span. Enter the days, hours, minutes and seconds in the corresponding fields, and that time span will be added to original time of each file.
· Subtract time span. Enter the days, hours, minutes and seconds in the corresponding fields, and that time span will be subtracted from original time of each file.

Click on Copy Settings button to copy this file time in the other file times.

If any select element is a folder, you can check Change in all subfolders check box. If you check this option, the time will be changed on all the files that the selected folder contains.


Split/Join File

This utility splits the files in various parts.

From the window you can choose the size of each part and the target folder. Also is possible to compress the file in order to create minus number of parts. To compress the file check the Compress check box.

If you wish to know how many parts will be created, you can click in the button with the following icon: CalcularDividir. Note if you check the Compress option, is need compress the file previously to calculate the number of parts, and this can take several time, depending of the file size.

The first part of the file will be created with .prt extension, and the other parts will have the following extensions: ..p01, .p02, .p03, etc, depending of number of parts. The file name of the parts will be the same that the file name of the original file.

In order to build the original file again, select the file with .prt extension from the Windows Explorer and from the context menu, execute the Join Parts command.


Register/Unregister DLL

This utility registers or unregisters dinamyc link libraries in the Windows sytem, so applications can use them.

This utility is displayed for files with the following extensions: .dll, .ocx.


Find and Replace

This utility lets you find or replace a text recursively for all the files that a selected folder contains.

Find a text

In order to find a text, type the text you wish to search and the file types where you wish to search, and click over Find link.Then the text will be searched in all selected files. If Enter in all subfolders option is checked, all the files that the selected folders contain will be searched recursively. The results of the search will be displayed in the list on right side of the window. In this list is displayed the file path, the line number and the line where the text was found to. If you do double click over an element in the list, the file will be opened with associated application.

Replace a text

In order to replace a text with other text, type the text you wish to search, the text you wish to replace, and the file types where you wish to search, and click over Replace link. Then the text will be replaced in all selected files. If Enter in all subfolders option is checked, all the files that the selected folders contain will be replaced recursively. The results of the replacement will be displayed in the list on right side of the window. In this list is displayed the file path, the replaced line number, and the line where the text was replaced.

Also it is possible by replacing a text in specific lines of the found files in a previous search. In order to do this, when a search has finished, you must select the lines which you wish to replace and click over Replace selected lines only. When you do this, the text will be replaced in selected lines only.

Open and save the search results

After ending the searching or the replacing, the results are showed in a list. In this list is showed the file name, the line number, and the line text. It is possible save these results in a file by clicking over Save results link. In order to recover the results, you must click over Open results link.

Options

You can use the following options:

· Match case. If checked, all the characters of the text must match exactly with case.
· Match whole word only. If checked, the text must be limited with blank spaces or separated characters.
· Use regular expressions. If checked, you will may use regular expressions for the search text.
· Enter in all subfolders. If checked, the search process will search recursively in all subfolders that the selected folders contain.
· Create backup in "fmt_bak" folder. If checked, previously to replace a file, the file will be copied to subfolder named "fmt_bak". This subfolder will be in same folder that the file.

Profiles

If you use an specific configuration many times, it is possible save all the configuration in profiles and later you may recover the configuration quickly. The profiles are managed from the panel displayed in the bottom-left side of the window.

If you want to save the current configuration in a profile click over Save profile link. In the displayed dialog box you must specify the profile name; when you click over OK button, the profile will be add to the combo box which is showed in profiles panel. In order to load an existing profile, select it from the combo box and click over Load profile link. If you want to delete a profile, select it and click over Delete profile link.


Advanced Renamer

This utility lets you rename automatically all the selected files in the Windows Explorer. From the Advanced Renamer window you can configure the options to rename all the files. This window has two tabs: Basic Options and Advanced Options.

Basic Options

From Basic Options tab you can configure some parameters in order to change the name and/or the extension of the files. There are two option groups, one to change the name and other to change the extension. For both cases the options are the same. The fields are the following:

· String: you must specify the text to be inserted into the file name. You may specify different variables to be inserted in the file name. See Variables section for more info.
· Location: you must specify where the text will be inserted to. There are three options: replace the text in place of the old name/extension, insert the text before the old name/extension or insert the text after the old name/extension.
· Sequence: specifies a sequence to be inserted in the file names. You must specify the first element of the sequence, and the sequence will be completed automatically. You can specify both numbers and letters. For example: if you specify 001, the sequence will be 001, 002, 003, 004, etc; or if you specify 0A, the sequence will be 0A, 0B, 0C, etc.
· Convert: you may convert the characters of the file names. The possible options are:

- losercase: all the characters are converted to lowercase.

- UPPERCASE: all the characters are converted to uppercase.

- Phrase format: the first character is uppercase and the other characters are lowercase.

- Title Format: the first character of each word is uppercase and the other characters are lowercase.

- Decode URL format: convert the special characters encoded to the form %XX to the corresponding character.

- Encode URL format: convert the special characters to the form %XX.

Advanced Options

From Advanced Options tab you can insert or replace a text into the name or the extension of the files. From the Apply to combo box you can specify where the changes will be applied to. There are two group options: Insert and Replace.

· Insert. You must specify the text to insert in String field and choose where the text will be inserted to. You can specify: insert in a a specific position (starting with 0), insert the text before a specific text, or insert the text after a specific text.
· Replace. There are two replace options:
· Replace the substring included from a position to a other position with the string specified in Change with field.
· Replace the text specified in Find string field with the text specified in Change with field. If Use regular expressions is checked you can use regular expressions in Find string field and Change with field.

If Match case option is checked, when a text is searched, the case of the all characters must match.

In the String field, different variables can be added to insert in the file name. See Variables section for more info.

Preview

In the panel of the right side will be displayed a preview. In this preview you can view how the files will be renamed. There are two columns: old name and new name. The preview is updated automatically when you modify the renaming parameters.

You can move the files by dragging and dropping with the mouse pointer. This lets you sort the files when you configure a sequence from Basic Options tab.

If you don't want to rename a specific file, select the file in the preview and push the DEL key.

Renaming Batch

It is possible to add up to 5 option groups to rename the files in the same renaming action. In the upper side of the Advanced Renamer window there are 5 buttons, each button for an option group. When an option group is configured, the corresponding button is marked in bold.

When the renaming process is running, for every affected file, Advanced Renamer will apply the option groups in order on the name of the file.

Profiles

The renaming options can be saved in a profile, so these profiles can be loaded later. This is configured in Profiles section in Advanced Renamer window. Here is the list with all the saved profiles, and three buttons that lets you load a profile, save the current options to a profile, or delete the selected profile. When you save a profile, the renaming batch will be saved completely.

Variables

The available variables to insert in the file name are the following:

Last Write Time

%X | Local time. Example: 14:05
%p | Indicator AM/PM
%I | Hour (12-hour format)
%H | Hour (24-hour format)
%M | Minutes
%S | Seconds
%z | Time Zone (short)
%Z | Time Zone (long)

Last Write Date

%x | Local Date Format. Example: 08-10-2011
%D | Long Date Format. Example: saturday, october 8 2011
%d | Day of Month in Decimal (01-31)
%m | Month in Decimal (01-12)
%b | Short Month Name (Jan, Feb, ...)
%B | Long Month Name (January, February, ...)
%y | Year without Century (00-99)
%Y | Year with Century
%a | Short Week of Day (Mon, Tue, ...)
%A | Long Week of Day (Monday, Tuesday, ...)
%w | Day of Week in Decimal (0-6, 0=Sunday)
%W | Week of Year in Decimal (00-53)
%j | Day of Year in Decimal (001-366)

Photo Attributes

%HEIGHT% | Height (in pixels)
%WIDTH% | Width (in pixels)

Photo Attributes - Captured Time

NOTE: for files which are not photos, the last write time of the file will be applied.

%#X | Local time. Ejemplo: 14:05
%#p | Indicator AM/PM
%#I | Hour (12-hour format)
%#H | Hour (24-hour format)
%#M | Minutes
%#S | Seconds
%#z | Time Zone (short)
%#Z | Time Zone (long)

Photo Attributes - Captured Date

NOTE: for files which are not photos, the last write date of the file will be applied.

%#x | Local Date Format. Example: 08-10-2011
%#D | Long Date Format. Ejemplo: saturday, october 8 2011
%#d | Day of Month in Decimal (01-31)
%#m | Month in Decimal (01-12)
%#b | Short Month Name (Jan, Feb, ...)
%#B | Long Month Name (January, February, ...)
%#y | Year without Century (00-99)
%#Y | Year with Century
%#a | Short Week of Day (Mon, Tue, ...)
%#A | Long Week of Day (Monday, Tuesday, ...)
%#w | Day of Week in Decimal (0-6, 0=Sunday)
%#W | Week of Year in Decimal (00-53)
%#j | Day of Year in Decimal (001-366)

MP3 Attributes

%MP3TITLE% | Title
%MP3ARTIST% | Artist
%MP3ALBUM% | Album
%MP3YEAR% | Year
%MP3TRACK% | Track Number
%MP3GENRE% | Genre (Pop, Rock, ...)
%MP3COMMENT% | Comment
%MP3MIN% | Length in minutes
%MP3SEC% | Length in seconds
%MP3BITRATE% | Bitrate (kbps)
%MP3SAMPLERATE% | Sample Rate
%MP3MODE% | Channel Mode (Mono, Stereo)

Other variables

%COMPUTERNAME% | Computer name
%USERNAME% | User name who logged in
%FOLDERNAME% | Folder name of the file to rename
%SEQ% | A sequence is added starting in 1
%RND(length,ranges)% | Random string. The first parameter specifies the length of the string. The remaining parameters specify the ranges of characters. For example, with %RND(4,0-9,A-Z)%, the random string will be 4 characters of length and will contain both numbers and upper case letters.


Change Icon

This utility lets you change the icon of the selected folder. All the folders normally have the same icon in the Windows Explorer, but some special folders have other icon (My Documents or My Pictures for example). In order to set an icon to any folder in the file system, you can use this utility of FileMenu Tools.

This utility is displayed only if you select a folder.

If you want to set the default icon, choose Default icon option; and if you want to set other icon, choose Other icon option. In order to select the icon, click over BotonExplorar button. Then a window will be showed which lets you browse the wanted icon.


Advanced Delete

This utility lets you delete specific file types. This can be used to delete temporary files for example. This utility is displayed only if you select a folder in the Windows Explorer.

There are two options to delete the files depending of the type:

· Delete the files which match the filters. Example: in order to delete all the files with either tmp or dat extensions, you must specify "*.tmp;*.dat" in the "Filters" field.
· Delete the files which do not match the filters. Example: in order to delete all the files but those with txt extension, you must specify "*.txt" in the "Filters" field.

The filters can contain wildcards and each filter must be separated with a semicolon. The wildcards can be either * (zero or various characters of any type) or ? (a character of any type). Example: the "file.txt" file matches the "*.txt" filter, but it does not match the "*.tmp" filter.

By clicking over the Find button, the files which match or not match the filters (depending of the selected option) will be searched and the results will be displayed in the list of the window. You can select the files that you want to delete and click over Delete Selected button.

If you click over Find and Delete button, the files will be searched and deleted immediately. In this case the files will be not displayed in the list.

Options

· Find in subfolders. If checked, the search process will search recursively in all subfolders that the selected folders contain.
· Move to recycle bin. If checked, the files will be moved to recycle bin and will be not deleted.


Synchronize Folders

This utility lets you synchronize two folders. From the Windows Explorer, select a folder and from the context menu choose the "Synchronize..." command. The following window will be showed:

From Folder 2 field, specify the other folder that you want to synchronize with. You also can specify the file types that you want to synchronize and the synchronization type.

When you have configured all the options, click over Next button. Then all changes in both folders will be analyzed and showed in the following window:

Depending of the changes which will be realized in both folders, the icons of the folders and files will be showed with the following colors:

· Green: elements will be added.
· Red: elements will be deleted.
· Blue: elements will be replaced.

If you don't want to apply an specific change, select the change and click over Remove Change button.

Click over OK button in order to start the synchronization process.

When two files exist in both folders with the same file name, the last write time will be compared to determine which file is newest. However, also it is possible to compare the file version for executable files (.exe, .dll, .ocx, etc.) rather than the last write time (you must check the following option: "Compare file version rather than time for executable files (.exe, .dll, .ocx, etc.)").

Synchronization Types

You can specify the following synchronization types:

· Unidirectional, Folder 1 -> Folder 2. If you select this option, the Folder 2 will be modified in order to be equal to Folder 1. The Folder 1 will be kept unchanged. The following changes will be do to Folder 2:
· Add the elements that exist in Folder 1 but not in Folder 2.
· Replace the elements that exist in both folders, but in Folder 1 they are newer than in Folder 2.
· Delete the elements that exist in Folder 2 but not in Folder 1.
· Unidirectional, Folder1 <- Folder2. If you select this option, the Folder 1 will be modified in order to be equal to Folder 2. The Folder 2 will be kept unchanged. The following changes will be do to Folder 1:
· Add the elements that exist in Folder 2 but not in Folder 1.
· Replace the elements that exist in both folders, but in Folder 2 they are newer than in Folder 1.
· Delete the elements that exist in Folder 1 but not in Folder 2.
· Bidirectional, Folder1 <-> Folder2. If you select this option, both folders will be modified in order to be equals. The following changes will be do to both folders:
· Add to Folder 1 the elements that exist in Folder 2 but not in Folder 1.
· Add to Folder 2 the elements that exist in Folder 1 but not in Folder 2.
· Replace in Folder 1 the elements that exist in both folders, but in Folder 2 are newer than in Folder 1.
· Replace in Folder 2 the elements that exist in both folders, but in Folder 1 are newer than in Folder 2.
· Customized. If you select this option, you will may customize the changes to realize to both folders.

File Types to synchronize

If you want, you can synchronize some file types only. In the Files combo box, you can choose the following options:

· All files. This options will synchronize all files and folders.
· Only files which match the filters. If checked, only the files which match the filters specified in Filters field will be synchronized.
· Only files which do not match the filters. If checked, all the files will be synchronized except the files which match the filters specified in Filters field.

The Filters field must contain each filter separated with a semicolon. The filters can contain the wildcard characters either * (zero or various characters of any type) or ? (a character of any type). For example, to match files with .exe extension or with .dll extension, you must use the following filter: *.exe;*.dll

Profiles

You can save the configuration in profiles, so if an specific configuration is used various times, you can configure a profile and then load that profile each time you want to use that configuration. At the bottom side of the window a combo box exists with the profiles names and three buttons that you lets load, save or delete the profiles, respectively. All configuration is saved in the profile except the Folder 1, which is always selected from the Windows Explorer.


Delete Locked File

This utility lets you delete the locked files. Sometimes files cannot be deleted because they are been used by any application and therefore they are locked. This utility lets you mark this type of files to be deleted for the next system boot, before any application can lock them.


Delete and no move to Recycle Bin

This utility lets you delete files and/or folders definitely and no move them to Recycle Bin. It do the same functionality that to press SHIFT key when deleting elements from Windows Explorer.


Shred Files

This utility lets you shred the selected files definitely so it is impossible to recovery the files with recovering tools. As you may or may not know, Windows doesn’t actually delete a file when you choose the Windows delete command. The file remains on your hard disk and Windows only removes the entry to it from the FAT (File Allocation Table) so that the system doesn’t see the file. But with recovering tools, these files can be found and recovered again as long as they haven’t been overwritten by new data yet. With secret files this can be a problem. This utility overwrites several times the file content so it is impossible to recovery the file in the future.

FileMenu Tools supports the following shredding methods:

· Quick Shredding: performs only one overwrite with zeros. This method is very quick, but very little secure.
· Secure Delete with DOD 5220.22-M: deletes using the norm from the U.S. Department of Defense (DOD 5220.22-M). This method performs 3 overwrites.
· Secure Delete with Gutmann (lite): deletes using the lite version of the Gutmann directives. This method performs 10 overwrites, and therefore is slow.
· Secure Delete with Gutmann: deletes using the Gutmann directives. This method performs 35 overwrites, and therefore is very slow.

Before deleting the file, the file is renamed to other name so the recovery tools cannot display the original name.

If you check "Use always this selection and not prompt more times", then it always will use the same shredding method. If you want to change the shredding method for some specific files, you must press CONTROL key while you run the command from the context menu.


Create New Folder

This utility lets you create a new subfolder in the selected folder. It is possible to create various subfolders at the same time by specifying the following character: \

This utility is displayed only if you select a folder.


Size of Folders

This utility lets you see the size of the folders. If only a folder is selected, then it will be displayed the size of all its subfolders; and if various folder are selected, then it will displayed the size of these folders.

The window that will be showed is:

In the list is showed the size of each folder and the percentage. Below the list is showed the total size and below the window is showed a pie chart that shows graphically the percentage.

Double-click over a folder in the list to analyze the size of all its subfolders. Push over UpLevel button to analyze all the subfolders of the parent folder.


Send to mail recipient

This utility lets you send an e-mail with the selected elements in the Windows Explorer as attachments. If a folder is selected, then the files that the folder contains will be sent. To send the e-mail, the default e-mail application is used.


Select

This utility selects the elements in the Windows Explorer by its type. It shows a submenu in the context menu with all the file types that the current folder contains and other 3 commands to select all the elements, to select only the folders or to select only the files.

This utility only is displayed when right-clicking in the blank part of the right panel in the Windows Explorer.

NOTE: This utility does not work correctly if the Windows Explorer have configured to hide the file extensions. You must disable that option in order to work correctly this utility.

NOTE: This utility does not work on Windows 7 or later.


Create Symbolic Link

This utility lets you create a symbolic link which is referenced to the selected element. A symbolic link is a special type of file that contains a reference to another file or folder in the form of an absolute or relative path and that affects pathname resolution.

Symbolic links operate transparently for most operations: programs which read or write to files named by a symbolic link will behave as if operating directly on the target file. A symbolic link merely contains a text string that is interpreted and followed by the operating system as a path to another file or directory. It is a file on its own and can exist independently of its target. If a symbolic link is deleted, its target remains unaffected. If the target is moved, renamed or deleted, any symbolic link that used to point to it continues to exist but now points to a non-existing file.

In Windows Explorer, symbolic links are identified because an arrow is drawed over the icon of the object.

When this utility is run, a dialog box is displayed in order to select the location of the symbolic link which will referenced to the selected object. If Windows have enabled UAC (User Account Control), you will must grant permission in order to do the operation, because it is only possible to create symbolic links with administrator privileges.

NOTE: this utility only works on Windows Vista or later.


Calculate and verify checksum

This utility calculates checksums for the selected elements in Windows Explorer. By calculating the checksum of a file you can verify if the file has been modified. It is often useful for example to verify that a file downloaded from Internet has been successfully saved and is not corrupt after download. When calculating the checksum of a file, a string is get which contains numbers and letters. In order to verify if the file is equal than the original file, simply it is necessary compare if the calculated checksum and the original checksum are equals.

The main window is the following:

The window lists the files that were selected in Windows Explorer. To calculate the checksum of the files, choose the type of checksum (MD5 or SHA1), and click the Start button. When it finishes, the checksums are displayed in column Checksum. If you want to verify that the calculated checksum is correct, select the file in the list, and type or paste the original checksum value in the field Verify with. If the checksum is equal, then icon ok is displayed, else the icon cancel is displayed.

It is also possible to save the checksums in a file to verify in the future that the original file has not been altered and remains the same. To do this press the Save Checksums button. The checksum of each file is saved to a text file in the same folder and with the same file name, and with md5 or sha1 extension (depending on the calculated checksum). For example, if the file was named "MyFile.iso" and is calculated the MD5 checksum, then the checksum file will have the name "MyFile.iso.md5." You can also run this tool by selecting files with the md5 or sha1 extension, and in this case the checksum is automatically calculated and verified with the checksum file.


Delete Empty Folders

This utility searches all empty subfolders into the selected folder and deletes them. A folder is empty when it does not contain files (even in all subfolders). A confirmation dialog box will be showed before deleting to see all folders which will be deleted.


Custom Commands

FileMenu Tools lets you configure customized commands which will be added to context menu of the Windows Explorer. There are six command types which let you make specific actions. This actions are:

· Run an external program, whose arguments are the selected elements.
· Copy the selected elements to an specific folder.
· Move the selected elements to an specific folder.
· Delete specific file types into the selected folders.
· Rename the selected files.
· Send the selected elements to mail recipients with specific parameters (e-mail recipients, subject and body).

From the Commands of FileMenu Tools tab of the configuration window you can add new commands, delete commands and change the command properties.

In order to add a new command click Add Command action. The new command will be added to the list and its name will be New Command.

In order to change the properties of a command, you must use the properties panel. There are common properties and specific properties for each command type.

Common Properties

· Action. The action which will be run: run program, copy to a folder, move to a folder, or delete specific files.
· Menu Text. The text which will be displayed in the context menu.
· Icon. The icon which will be displayed in the context menu. If you click the right side button then a dialog box will be displayed to browse and select the icon.
· Element Types. The command will be displayed only when any selected element in the Windows Explorer belongs to any of these element types. The element types can be files, folders or drives.
· Files: you must specify the file extensions separated with a comma, and if you wish to specify all file types, enter * wildcard.
· Folders: by default the command is displayed with all the folders, but you can specify also specific folders by typing the folders in the "Specific Folder" field. The folders must be separated with semicolons. You can use wildcards (* and ?), and specify both relative paths and absolute paths. For example: if you specify "Temp*", then the command will be displayed only when the selected folder begins with "Temp".
· Drives: you can specify the drive types: fixed drive, removable drive, CD-ROM/DVD-ROM, network drive and RAM disk.
· Other options: by default, all files are displayed when various files are selected, but if you want you can set the "Only an element" option to "Yes" in order to display the command only when an element is selected.
· Modifier Key. The custom command only will be showed in the context menu if this key is pressed while the menu is displaying. The key is any of the following: SHIFT, CONTROL, or WINDOWS. If you set this parameter to "None", then the command always will be displayed in the context menu.

Program Properties

· Program. The full path of the program file, or relative path as regards installation folder of FileMenu Tools.
· Arguments. The arguments which must be given to the program. If you don't specify this field, by default, the arguments will be the path of all the selected elements in the Windows Explorer. You can specify various variables which will be replaced with its value when the program runs. In order to insert a variable, click over the right side button and select the variable from the context menu. The possible variables are the following:
· %: no arguments will be given to the program. This behaviour replaces the default behaviour if Arguments field is empty (the path of all the selected elements in the Windows Explorer).
· %DRIVE%: drive letter which is common to the all selected elements.
· %FOLDERPATH%: if only a folder is selected in Windows Explorer, then this variable is this folder, else this variable is the parent folder path which is common to all the selected elements.
· %PARENTPATH%: parent folder path which is common to all the selected elements.
· %FOLDERNAME%: name of the parent folder.
· %RELPATH%: parent folder path without drive.
· %FILEPATHS%: full paths of all the selected elements. This is the default variable if you don't specify any argument.
· %FILENAMES%: names of all the selected elements.
· %FILEPATHn%: full path of the element at position n.
· %FILENAMEn%: name of the element at position n.
· %FILETITLEn%: title (name without extension) of the element at position n.
· %FILEEXTn%: extension of the element at position n.
· %TEMPFILEPATHS%: save the full paths of all the selected elements in a temporary file and the variable will be replaced with the full path of this temporary file.
· %TEMPFILENAMES%: save the names of all the selected elements in a temporary file and the variable will be replaced with the full path of this temporary file.
· %TARGET...%: if you add the prefix TARGET to any above variable, then if you select shortcuts in the Windows Explorer, the variable will access to the target files of the shortcuts.
· @Message@: customized variable. The variable value will be requested when the program runs. Message is the text which will be displayed when the value is requested.
· @OPENFILE:Message@: lets you select a file when the program runs. The Open File Dialog will be showed to select the file. Message is the text which will be displayed in the dialog.
· @SAVEFILE:Message@: lets you select a file for save when the program runs. The Save File Dialog will be showed to select the file. Message is the text which will be displayed in the dialog.
· @FOLDER:Message@: lets you select a folder when the program runs. A dialog will be showed to select the folder. Message is the text which will be displayed in the dialog.
· Working Folder. The working folder which the program will be run. You can specify the following variables:
· %DRIVE%: drive letter which is common to the all selected elements.
· %FOLDERPATH%: if only a folder is selected in Windows Explorer, then this variable is this folder, else this variable is the parent folder path which is common to all the selected elements.
· %PARENTPATH%: parent folder which is common to all the selected elements.

· Several Instances. Choose "Yes" if a new instance of the program must be run for each selected element. This may be useful for the programs which only support a file as argument.
· Several Instances. Indicates if to run several instances of the external application, one for each selected item in Windows Explorer. This can be useful for programs that support only a filename as parameter. If this parameter is different to "No", then the variables as %FILEPATH1%, %FILENAME1%, etc., take on each new instance of the application executed each of the selected files in Windows Explorer. The possible values ​​may be one of the following:
· No: normal behavior, that is to say, a single instance of the application is run, passing all selected files.
· Simultaneous: all instances of the application are run simultaneously.
· Sequential: each instance of the application is run sequentially, that is to say, an instance of the application only runs the same time, and a new instance only is run when the previous instance is terminated. If you set this value, then you can also set two additional parameters: enter in subfolders and show progress bar.
· Several Instances/Enter in subfolders: only available if "Several Instances" is sequential. If this parameter is set to "Yes", then enters recursively in all selected folders and subfolders and run a new instance of the application for each element within these folders. It will be considered only the elements that are the same type as specified in the general parameter "Element Types".
· Several Instances/Show Progress Bar: only available if "Several Instances" is sequential. If this parameter is set to "Yes", then will display a progress bar during the execution of each of the instances of the application. So it is possible to know at any time how many instances remain to run.
· Run As Administrator. Choose "Yes" if the program must be run with administrator privileges. If UAC is enabled, then a dialog box will be displayed to confirm the action.

Copy/Move Properties

· Target Folder. The folder where the selected elements will be copied/moved to. You can include the following variables:
· %DRIVE%: drive letter which is common to the all selected elements.
· %FOLDERPATH%: if only a folder is selected in Windows Explorer, then this variable is this folder, else this variable is the parent folder path which is common to all the selected elements.
· %PARENTPATH%: parent folder path which is common to all the selected elements.
· %FOLDERNAME%: name of the parent folder.
· %RELPATH%: parent folder path without drive.
· %FILEPATHn%: full path of the element at position n.
· %FILENAMEn%: name of the element at position n.
· %FILETITLEn%: title (name without extension) of the element at position n.
· %FILEEXTn%: extension of the element at position n.
· %TARGET...%: if you add the prefix TARGET to any above variable, then if you select shortcuts in the Windows Explorer, the variable will access to the target files of the shortcuts.
· File Types. The file types to copy/move. There are three options: all files, only files match the filters, or only files does not match the filters. If you choose any of last two options, you must specify the file types.
· Overwrite. If checked, when coping/moving an existing file, you will be asked if the file must be overwrited or not.

Delete Properties

· File Types. The file types to delete. There are three options: all files, only files match the filters, or only files does not match the filters. If you choose any of last two options, you must specify the file types.
· Enter in subfolders. If checked, then the delete process will delete recursively in all subfolders that the selected folders contain.
· Move to Recycle Bin. If checked, the files will be moved to recycle bin and will be not deleted.

Rename Properties

· Profile Name. Profile name of "Advanced Renamer" tool to be used when renaming.
· Enter in subfolders. If checked, then the renaming process will rename recursively in all subfolders that the selected folders contain.
· Element Types to Rename. Element types to be affected for the renaming process: both files and folders, only files or only folders.
· File Types. The file types to rename (only used if Element Types to Rename includes files). There are three options: all files, only files match the filters, or only files does not match the filters. If you choose any of last two options, you must specify the file types.
· Conflict Behaviour. The action to perform if a conflict exists while renaming a file, that is, if a file really exists with the same name in the same folder. The possible options are: prompt, no rename the file, overwrite the existing file, and add a numeric sequence.
· Show Preview. Show a window with the preview before renaming the files. So you can see the final result for all the files before applying the changes. If this field is unchecked, then only a confirm dialog will be displayed to confirm if you wish to continue with the renaming process, but you can not see if the files will be renamed correctly.

Send e-mail Properties

· To. The e-mail recipients. They must be separated with semicolon.
· CC. Another e-mail recipients. They must be separated with semicolon.
· BCC. Hidden e-mail recipients. Unlike the To and CC fields, the e-mail addresses added to BCC are invisible to the recipients of the message.
· Subject. The message subject.
· Body. The message body. The line feeds are indicated with \n.


Run from command line

The built-in tools of FileMenu Tools can also be run from the command line. This allows, for example, to create shortcuts or scripts to automate the execution of these tools.

To run a built-in tool you must use the executable cmdfmt.exe on 32-bit systems or cmdfmt64.exe on 64-bit systems. This executable is in the installation folder of FileMenu Tools (usually "C:\Program Files\LopeSoft\FileMenu Tools"). The way to run the tool from the command line would be as follows:

> "C:\Program Files\LopeSoft\FileMenu Tools\cmdfmt64.exe" <tool> <properties> <file(s)>

Where <tool> is the name of the tool you want to run, <properties> are the properties that the tool supports and <file(s)> are the files that will be used for the tool.

The properties depend on the tool you want to run. Each property will be of the form /Name:Value.

The files can be one or more files separated with a blank space. You can also use wildcards such as * and ?. This allows great flexibility to pass to the tool all the files that a folder contains and with a specific extension. For example, indicating "* .doc * .pdf" will pass all files that are in the current folder that have both the extension .doc and .pdf. If for example "*" is specified, then all the files and folders contained in the current folder will be passed. It is also possible to indicate relative paths; for example: "./logs/*.txt" will pass all files with extension .txt in subfolder "logs".

From the configuration window of FileMenu Tools there is a tool that allows to automatically generate the complete command line with all its arguments. To open this tool go to the menu "Tools/Run from command line ...". A window like the following will be displayed:

To generate the command line simply select the tool from the left side and on the right side will show all the properties that the tool supports. Fill in the properties as needed and it will automatically display the command line with all its arguments at the bottom of the window. You can copy this command line and paste it where you need it (shortcut, batch file, or directly to command line window). The tool will run in the same way as if it were done from the context menu of Windows Explorer.


"Send to..." menu

FileMenu Tools lets you configure the "Send to" submenu. You can add new elements, change the properties of the existing elements and delete them. You also can disable the existing elements in order to hide from the menu.

You can configure the "Send to" menu from the "Send to" menu tab in the configuration window of FileMenu Tools.

You can add new elements by clicking the Add Command action.

In order to delete an existing element click Delete action.

If you want to hide an existing element, uncheck the left side check box of the element.

In order to change the properties of an element, select the element and change its properties from the properties panel. You can change the following properties:

· Name. The text which will be displayed in the menu.
· Target. The target where the files must be sent. It may be either an executable file or a folder.
· Arguments. The arguments which will be given to the program.
· Working Folder. The working folder where the program will be run from.
· Icon. The icon which will be displayed in the menu. If you click over the right side button, a dialog will be displayed to select the icon in the file system. You can choose an icon with .ico extension or an icon into an icon library (.exe, .dll, .icl, etc.).
· Description. A comment about the program.

NOTE: there are special commands which cannot changed. Only the elements which are displayed with bold font in the configuration window are commands that you can change its properties.


Commands of other applications

FileMenu Tools lets you enable/disable the commands which are added to the context menu of the Windows Explorer by other programs.

You can configure this from the Commands of other applications tab of the configuration window.

In the configuration Window there is a tree with two levels. The first level displays the object types, and the second level displays the applications which add commands to the context menu when you select a object type of the first level. The object types can be as the following:

· All file types (both files and folders).
· All file system objects (files, folders and special objects).
· Drives.
· Directories.
· Folders.
· Shortcuts.
· Internet shortcuts.
· MS-DOS shortcuts.
· Recycle Bin.
· Printers.
· My Documents.

In order to disable a command, uncheck the left side check box of the element. If you uncheck an object type (first level node), all the commands which are children of the node will be unchecked.


.topic 1002
The file types are specified by using filters which can contain wildcards. The wildcards can be either * (zero or various characters of any type) or ? (a character of any type). Each filter must be separated with a semicolon.
Example: *.htm;*.html

.topic 1004
The properties panel of the FileMenu Tools configuration window lets you change the properties of the selected element. Normally this panel is showed at bottom-left side of the window. In order to show this panel, you must click on Properties toolbar button or Edit/Properties menu command.


Regular Expression Class Names

 Top

Name | Description
alnum | Any alpha-numeric character.
alpha | Any alphabetic character.
blank | Any whitespace character that is not a line separator.
cntrl | Any control character.
d | Any decimal digit
digit | Any decimal digit.
graph | Any graphical character.
l | Any lower case character.
lower | Any lower case character.
print | Any printable character.
punct | Any punctuation character.
s | Any whitespace character.
space | Any whitespace character.
unicode | Any extended character whose code point is above 255 in value.
u | Any upper case character.
upper | Any upper case character.
w | Any word character (alphanumeric characters plus the underscore).
word | Any word character (alphanumeric characters plus the underscore).
xdigit | Any hexadecimal digit character.


Regular Expression Symbolic Names

 Top

The following symbolic names are recognised as valid collating element names, in addition to any single character:

Name | Character
NUL | \x00
SOH | \x01
STX | \x02
ETX | \x03
EOT | \x04
ENQ | \x05
ACK | \x06
alert | \x07
backspace | \x08
tab | \t
newline | \n
vertical-tab | \v
form-feed | \f
carriage-return | \r
SO | \xE
SI | \xF
DLE | \x10
DC1 | \x11
DC2 | \x12
DC3 | \x13
DC4 | \x14
NAK | \x15
SYN | \x16
ETB | \x17
CAN | \x18
EM | \x19
SUB | \x1A
ESC | \x1B
IS4 | \x1C
IS3 | \x1D
IS2 | \x1E
IS1 | \x1F
space | \x20
exclamation-mark | !
quotation-mark | "
number-sign | #
dollar-sign | $
percent-sign | %
ampersand | &
apostrophe | '
left-parenthesis | (
right-parenthesis | )
asterisk | *
plus-sign | +
comma | ,
hyphen | -
period | .
slash | /
zero | 0
one | 1
two | 2
three | 3
four | 4
five | 5
six | 6
seven | 7
eight | 8
nine | 9
colon | :
semicolon | ;
less-than-sign | <
equals-sign | =
greater-than-sign | >
question-mark | ?
commercial-at | @
left-square-bracket | [
backslash | \
right-square-bracket | ]
circumflex | ~
underscore | _
grave-accent | `
left-curly-bracket | {
vertical-line | |
right-curly-bracket | }
tilde | ~
DEL | \x7F


Regular Expressions

 Top

FileMenu Tools uses the Perl regular expression syntax. This syntax is based on that used by the programming language Perl. With regular expressions you may define search and replace patterns.

In Perl regular expressions, all characters match themselves except for the following special characters:

.[]{}()\*+?|^$

Wildcard

The single character '.' when used outside of a character set will match any single character except the newline character.

Anchors

A ^ character shall match the start of a line.

A $ character shall match the end of a line.

Marked sub-expressions

A section beginning ( and ending ) acts as a marked sub-expression. Whatever matched the sub-expression is split out in a separate field by the matching algorithms. Marked sub-expressions can also repeated, or referred to by a back-reference.

Non-marking grouping

A marked sub-expression is useful to lexically group part of a regular expression, but has the side-effect of spitting out an extra field in the result. As an alternative you can lexically group part of a regular expression, without generating a marked sub-expression by using (?: and ) , for example (?:ab)+ will repeat "ab" without splitting out any separate sub-expressions.

Repeats

Any atom (a single character, a marked sub-expression, or a character class) can be repeated with the *, +, ?, and {} operators.

The * operator will match the preceding atom zero or more times, for example the expression a*b will match any of the following:

b

ab

aaaaaaaab

The + operator will match the preceding atom one or more times, for example the expression a+b will match any of the following:

ab

aaaaaaaab

But will not match:

b

The ? operator will match the preceding atom zero or one times, for example the expression ca?b will match any of the following:

cb

cab

But will not match:

caab

An atom can also be repeated with a bounded repeat:

· a{n} Matches 'a' repeated exactly n times.
· a{n,} Matches 'a' repeated n or more times.
· a{n, m} Matches 'a' repeated between n and m times inclusive.

For example:

^a{2,3}$

Will match either of:

aa

aaa

But neither of:

a

aaaa

It is an error to use a repeat operator, if the preceding construct can not be repeated, for example:

a(*)

Will raise an error, as there is nothing for the * operator to be applied to.

Non greedy repeats

The normal repeat operators are "greedy", that is to say they will consume as much input as possible. There are non-greedy versions available that will consume as little input as possible while still producing a match.

*? Matches the previous atom zero or more times, while consuming as little input as possible.

+? Matches the previous atom one or more times, while consuming as little input as possible.

?? Matches the previous atom zero or one times, while consuming as little input as possible.

{n,}? Matches the previous atom n or more times, while consuming as little input as possible.

{n,m}? Matches the previous atom between n and m times, while consuming as little input as possible.

Back references

An escape character followed by a digit n, where n is in the range 1-9, matches the same string that was matched by sub-expression n. For example the expression:

^(a*).*\1$

Will match the string:

aaabbaaa

But not the string:

aaabba

Back references can be used also when replacing a text.

Alternation

The | operator will match either of its arguments, so for example: abc|def will match either "abc" or "def".

Parenthesis can be used to group alternations, for example: ab(d|ef) will match either of "abd" or "abef".

Empty alternatives are not allowed (these are almost always a mistake), but if you really want an empty alternative use (?:) as a placeholder, for example:

"|abc" is not a valid expression, but
"(?:)|abc" is and is equivalent, also the expression:
"(?:abc)??" has exactly the same effect.

Character sets:

A character set is a bracket-expression starting with [ and ending with ], it defines a set of characters, and matches any single character that is a member of that set.

A bracket expression may contain any combination of the following:

Single characters:

For example [abc], will match any of the characters 'a', 'b', or 'c'.

Character ranges:

For example [a-c] will match any single character in the range 'a' to 'c'. By default, for POSIX-Perl regular expressions, a character x is within the range y to z, if it collates within that range; this results in locale specific behavior.

Negation:

If the bracket-expression begins with the ^ character, then it matches the complement of the characters it contains, for example [^a-c] matches any character that is not in the range a-c.

Character classes:

An expression of the form [[:name:]] matches the named character class "name", for example [[:lower:]] matches any lower case character. See character class names.

Collating Elements:

An expression of the form [[.col.] matches the collating element col. A collating element is any single character, or any sequence of characters that collates as a single unit. Collating elements may also be used as the end point of a range, for example: [[.ae.]-c] matches the character sequence "ae", plus any single character in the range "ae"-c, assuming that "ae" is treated as a single collating element in the current locale.

As an extension, a collating element may also be specified via it's symbolic name, for example:

[[.NUL.]]

matches a NUL character.

Equivalence classes:

An expression oftheform[[=col=]], matches any character or collating element whose primary sort key is the same as that for collating element col, as with colating elements the name col may be a symbolic name. A primary sort key is one that ignores case, accentation, or locale-specific tailorings; so for example [[=a=]] matches any of the characters: a, à, á, â, ã, ä, å, A, À, Á, Â, Ã, Ä and Å. Unfortunately implementation of this is reliant on the platform's collation and localisation support; this feature can not be relied upon to work portably across all platforms, or even all locales on one platform.

Escapes:

All the escape sequences that match a single character, or a single character class are permitted within a character class definition, except the negated character classes (\D \W etc).

Combinations:

All of the above can be combined in one character set declaration, for example: [[:digit:]a-c[.NUL.]].

Escapes

Any special character preceded by an escape shall match itself.

The following escape sequences are also supported:

Escapes matching a specific character

The following escape sequences are all synonyms for single characters:

Escape | Character
\a | '\a'
\e | 0x1B
\f | \f
\n | \n
\r | \r
\t | \t
\v | \v
\b | \b (but only inside a character class declaration).
\cX | An ASCII escape sequence - the character whose code point is X % 32
\xdd | A hexadecimal escape sequence - matches the single character whose code point is 0xdd.
\x{dddd} | A hexadecimal escape sequence - matches the single character whose code point is 0xdddd.
\0ddd | An octal escape sequence - matches the single character whose code point is 0ddd.
\N{name} | Matches the single character which has the symbolic name name. For example \N{newline} matches the single character \n.

"Single character" character classes:

Any escaped character x, if x is the name of a character class shall match any character that is a member of that class, and any escaped character X, if x is the name of a character class, shall match any character not in that class.

The following are supported by default:

Escape sequence | Equivalent to
\d | [[:digit:]]
\l | [[:lower:]]
\s | [[:space:]]
\u | [[:upper:]]
\w | [[:word:]]
\D | [^[:digit:]]
\L | [^[:lower:]]
\S | [^[:space:]]
\U | [^[:upper:]]
\W | [^[:word:]]

Character Properties

The character property names in the following table are all equivalent to the names used in character classes.

Form | Description | Equivalent character set form
\pX | Matches any character that has the property X. | [[:X:]]
\p{Name} | Matches any character that has the property Name. | [[:Name:]]
\PX | Matches any character that does not have the property X. | [^[:X:]]
\P{Name} | Matches any character that does not have the property Name. | [^[:Name:]]

Word Boundaries

The following escape sequences match the boundaries of words:

\< | Matches the start of a word.
\> | Matches the end of a word.
\b | Matches a word boundary (the start or end of a word).
\B | Matches only when not at a word boundary.

Buffer boundaries

The following match only at buffer boundaries: a "buffer" in this context is the whole of the input text that is being matched against (note that ^ and $ may match embedded newlines within the text).

\` | Matches at the start of a buffer only.
\' | Matches at the end of a buffer only.
\A | Matches at the start of a buffer only (the same as \`).
\z | Matches at the end of a buffer only (the same as \').
\Z | Matches an optional sequence of newlines at the end of a buffer: equivalent to the regular expression \n*\z

Continuation Escape

The sequence \G matches only at the end of the last match found, or at the start of the text being matched if no previous match was found. This escape useful if you're iterating over the matches contained within a text, and you want each subsequence match to start where the last one ended.

Quoting escape

The escape sequence \Q begins a "quoted sequence": all the subsequent characters are treated as literals, until either the end of the regular expression or \E is found. For example the expression: \Q\*+\Ea+ would match either of:

\*+a
\*+aaa

Unicode escapes

\C | Matches a single code point: in Boost regex this has exactly the same effect as a "." operator.
\X | Matches a combining character sequence: that is any non-combining character followed by a sequence of zero or more combining characters.

Any other escape

Any other escape sequence matches the character that is escaped, for example \@ matches a literal '@'.

Perl Extended Patterns

Perl-specific extensions to the regular expression syntax all start with (?.

Comments

(?# ... ) is treated as a comment, it's contents are ignored.

Modifiers

(?imsx-imsx ... ) alters which of the perl modifiers are in effect within the pattern, changes take effect from the point that the block is first seen and extend to any enclosing ). Letters before a '-' turn that perl modifier on, letters afterward, turn it off.

(?imsx-imsx:pattern) applies the specified modifiers to pattern only.

Non-marking grouping

(?:pattern) lexically groups pattern, without generating an additional sub-expression.

Lookahead

(?=pattern) consumes zero characters, only if pattern matches.

(?!pattern) consumes zero characters, only if pattern does not match.

Lookahead is typically used to create the logical AND of two regular expressions, for example if a password must contain a lower case letter, an upper case letter, a punctuation symbol, and be at least 6 characters long, then the expression:

(?=.*[[:lower:]])(?=.*[[:upper:]])(?=.*[[:punct:]]).{6,}

could be used to validate the password.

Lookbehind

(?<=pattern) consumes zero characters, only if pattern could be matched against the characters preceding the current position (pattern must be of fixed length).

(?<!pattern) consumes zero characters, only if pattern could not be matched against the characters preceding the current position (pattern must be of fixed length).

Independent sub-expressions

(?>pattern) pattern is matched independently of the surrounding patterns, the expression will never backtrack into pattern. Independent sub-expressions are typically used to improve performance; only the best possible match for pattern will be considered, if this doesn't allow the expression as a whole to match then no match is found at all.

Conditional Expressions

(?(condition)yes-pattern|no-pattern) attempts to match yes-pattern if the condition is true, otherwise attempts to match no-pattern.

(?(condition)yes-pattern) attempts to match yes-pattern if the condition is true, otherwise fails.

Condition may be either a forward lookahead assert, or the index of a marked sub-expression (the condition becomes true if the sub-expression has been matched).

Operator precedence

The order of precedence for of operators is as shown in the following table:

Collation-related bracket symbols | [==] [::] [..]
Escaped characters | \
Character set (bracket expression) | []
Grouping | ()
Single-character-ERE duplication | * + ? {m,n}
Concatenation |
Anchoring | ^$
Alternation | |

What gets matched

If you view the regular expression as a directed (possibly cyclic) graph, then the best match found is the first match found by a depth-first-search performed on that graph, while matching the input text.

Alternatively:

the best match found is the leftmost match, with individual elements matched as follows;

Construct | What gets matches
AtomA AtomB | Locates the best match for AtomA that has a following match for AtomB.
Expression1 | Expression2 | If Expresion1 can be matched then returns that match, otherwise attempts to match Expression2.
S{N} | Matches S repeated exactly N times.
S{N,M} | Matches S repeated between N and M times, and as many times as possible.
S{N,M}? | Matches S repeated between N and M times, and as few times as possible.
S?, S*, S+ | The same as S{0,1}, S{0,UINT_MAX}, S{1,UINT_MAX} respectively.
S??, S*?, S+? | The same as S{0,1}?, S{0,UINT_MAX}?, S{1,UINT_MAX}? respectively.
(?>S) | Matches the best match for S, and only that.
(?=S), (?<=S) | Matches only the best match for S (this is only visible if there are capturing parenthesis within S).
(?!S), (?<!S) | Considers only whether a match for S exists or not.
(?(condition)yes-pattern | no-pattern) | If condition is true, then only yes-pattern is considered, otherwise only no-pattern is considered.