You can use almost any character as a mark character by means of this command, to distinguish various classes of files. If old-markchar is a space ( ), then the command operates on all unmarked files; if new-markchar is a space, then the command unmarks the files it acts on.
To illustrate the power of this command, here is how to put D flags on all the files that have no marks, while unflagging all those that already have D flags:
* c D t * c SPC D * c t SPC
This assumes that no files were already marked with t.
Mark (with *) all files whose names match the regular expression regexp (dired-mark-files-regexp). This command is like % d, except that it marks files with * instead of flagging with D. See Flagging Many Files.
Only the non-directory part of the file name is used in matching. Use
^ and $ to anchor matches. Exclude subdirectories by
hiding them (see Hiding Subdirectories).
Mark (with *) all files whose contents contain a match for the regular expression regexp (dired-mark-files-containing-regexp). This command is like % m, except that it searches the file contents instead of the file name.
Undo changes in the Dired buffer, such as adding or removing marks (dired-undo). This command does not revert the actual file operations, nor recover lost files! It just undoes changes in the buffer itself. For example, if used after renaming one or more files, dired-undo restores the original names, which will get the Dired buffer out of sync with the actual contents of the directory.

