Searching for strings

Many search terms take a string as a parameter and match it
against one or more fields of a package. Strings can be
entered either with or without double quotes
(“"”), so
“?name(scorch)” and
“?name("scorch")” will
perform the same search. If you enter a search string using
double quotes, you can include a literal double-quote in the
search string by placing a backslash
(“\”) immediately before it:
for instance,
“?description("\"easy\"")”
will match any package whose description contains the string
“"easy"”.

If you enter a “bare” string, one not
surrounded by double quotes, then aptitude will consider
the string to have “ended” when it encounters
the closing parenthesis or the comma before a second
argument to the search term.
[14]
To remove the special meaning of these characters, place a
tilde (“~”) directly before
them. For instance,
“?description(etc))” is a
syntax error, because the first
“)” ends the ?description
term, and the second “)”
does not correspond to any
“(”. In contrast,
“?description(etc~))”
matches any package whose description contains the text
“etc)”. There are
additional considerations if you are using the shorthand
notation for a term; see the section called “Shorthand for search terms” for details.

Most textual searches (for package names, descriptions, etc)
are performed using case-insensitive regular
expressions. A regular expression will match
against a field if any portion of the field matches the
expression; for instance,
“ogg[0-9]” will match
“libogg5”,
“ogg123”, and
“theogg4u”.
Some characters have a special meaning within regular
expressions
[15]
, so if you want to match them in searches you need to
backslash-escape them: for instance, to find
“g++”, you should use the
pattern “g\+\+”.

The characters “!” and
“|” have special meanings
within search patterns. In order to include these
characters in an unquoted string, you can place a tilde
(“~”) directly before them.
For instance, to match packages whose description contains
either “grand” or “oblique”, use
the pattern
“?description(grand~|oblique)”.
However, you will probably find it more convenient to simply
use a quoted string in these cases:
“?description("grand|oblique")”.

[14] aptitude will only treat the comma as special if there
is a second argument, so (for instance)
“?name(apt,itude)”
searches for the string
“apt,itude” in the
Name field of packages.

While this behavior is well-defined, it may be
surprising; I recommend using quoted strings for any
pattern that contains characters that could have a
special meaning.

[15]
Characters with a special meaning include:
“+”,
“-”,
“.”,
“(”,
“)”,
“|”,
“[”,
“]”,
“^”,
“$”, and
“?”. Note that some of
these are also aptitude metacharacters, so if you want
to type (for instance) a literal
“|”, it must be
double-escaped:
“?description(\~|)”
will match packages whose description contains a
vertical bar character
(“|”).