




A regular expression ( regexp ) allows the specification of the search string to include wild characters, repeated characters, ranges of characters, and alternatives. Strings which follow a specific pattern can be located, which makes regular expression searches very powerful.
The regular expression syntax used is similar to that of Emacs. In addition to ordinary characters, a regular expression can contain the following special characters to produce the search pattern:
Matches any single character except a newline. For example, 
c.r
 matches any three character string starting with 
c
 and ending with 
r
.
Matches the previous regexp any number of times (including 0 times). For example, 
ca*r
 matches strings beginning with 
c
 and ending with 
r
, with any number of 
a
's in-between.
Matches the previous regexp any number of times, but at least once. For example, 
ca+r
 matches strings beginning with 
c
 and ending with 
r
, with at least one 
a
 in-between.
Matches the previous regexp either 0 or 1 times. For example, 
ca?r
 matches either the string 
cr
 or 
car
, and nothing else.
Matches the next regexp as long as it is at the beginning of a line. For example, 
^foo
 matches the string 
foo
 as long as it is at the beginning of a line.
Matches the previous regexp as long as it is at the end of a line. For example, 
foo$
 matches the string 
foo
 as long as it is at the end of a line.
Contains a character set to be used for matching, where the other special characters mentioned do not apply. The empty string is automatically part of the character set. For example, 
[a.b]
 matches either 
a
 or 
.
 or 
b
 or the empty string. The regexp 
c[ad]*r
 matches strings beginning with 
c
 and ending with 
r
, with any number of 
a
's and 
d
's in-between.
The characters 
-
 and 
^
 have special meanings inside character sets. 
-
 defines a range and 
^
 defines a complement character set. For example, 
[a-d]
 matches any character in the range 
a
 to 
d
 inclusive. 
[^ab]
 matches any character except 
a
 or 
b
.
Quotes the special characters. For example, 
\*
 matches the character 
*
 (that is, 
*
 has lost its special meaning).
Specifies an alternative. For example, 
ab\|cd
 matches either 
ab
 or 
cd
.
Provides a grouping construct. For example, 
ab\(cd\|ef\)
 matches either 
abcd
 or 
abef
.
Arguments: 
string
Key sequence: 
Alt+Ctrl+S 
string
editor:regexp-forward-search-command 
p
 &optional 
string
 
the-point
 
limit
Performs a forward search for string using regular expressions. The search pattern must be terminated with a carriage return before any searching is done. If an empty string is provided, the last regexp search is repeated.
The argument the-point specifies the position from which the search is to start. The default is the current point. limit specifies a limiting point in the buffer for the search. The default is the end of the buffer.
Arguments: 
string
Key sequence: 
Alt+Ctrl+R 
string
editor:regexp-reverse-search-command 
p
 &optional 
string the-point limit
Performs a backward search for string using regular expressions. The search pattern must be terminated with a carriage return before any searching is done. If an empty string is provided, the last regexp search is repeated.
The argument the-point specifies the position from which the search is to start. The default is one position before the current point. limit specifies a limiting point in the buffer for the search. The default is the current point.
Arguments: None
Default binding: None
editor:count-occurrences-command 
p
 &optional 
regexp
Counts the number of regular expression matches for the string regexp between the current point and the end of the buffer.
Count Matches
 is a synonym for 
Count Occurrences
.