% Copyright The Numerical Algorithms Group Limited 1991.
% All rights reserved

%%  Using text from book now.

%%  \begin{page}{SearchStrings}{All about {\em Search Strings}}
%%  \newline Here is an \downlink{input area}{ugHyperInputPage}:
%%  \inputstring{filter}{35}{}\newline
%%  and here are some names of greek letters we will
%%  \lispdownlink{search}{(|htGreekSearch| '|\stringvalue{filter}|)}
%%  for:{\em
%%  \table{{alpha}{beta}{gamma}{delta}{epsilon}{zeta}{eta}{theta}{iota}{kappa}{lambda}
%%  {mu}{nu}{pi}}}
%%  \beginscroll
%%  A {\em search string} can be used to select entries from a list.
%%  For example, if you enter a search string into the input area above and
%%  then click on {\em search} above, \HyperName{} will select those greek letters
%%  indicated by the search string.
%%  \par
%%  Let's try it.
%%  The simplest search string is a word, e.g. {\em beta}. A word will only
%%  match an entry having exactly that spelling. Enter the word {\em beta} into the
%%  input area above then click on {\em search}. As you can see, {\em beta} matches
%%  only the single entry {\em beta}.
%%  \par
%%  Normally matching is insensitive to whether the alphabetic characters of your
%%  search string are in upper- or lower- case.
%%  Thus {\em Beta} and {\em BETA} will both match {\em beta}.
%%  \par
%%  You will very often want to use the "wildcard" {\em *} in your search string
%%  so as to match multiple entries in the list. The search key {\em *} will
%%  match every entry in the list. Try it!
%%  Enter {\em *} as your search string above then click on {\em search}.
%%  As you can see, the {\em *} matches every greek letter.
%%  \par
%%  You can also use {\em *} anywhere within a search string to match
%%  an arbitrary substring. Try {\em *eta} for example.
%%  It will match {\em beta}, {\em zeta}, {\em eta}, {\em theta}.
%%  In general, the wildcard matches any substring of zero or more arbitrary characters.
%%  \par
%%  You use any number of wildcards in a search string as long as they are not
%%  adjacent. Thus {\em *e*} will match {\em beta}, {\em delta}, {\em epsilon}, and others, that is, any word containing the letter {\em e}.
%%  Also {\em z*a} will match only {\em zeta}, that is, only words
%%  beginning with {\em z} and ending with {\em a}.
%%  Finally, {\em *a*a*} will match {\em alpha}, {\em gamma}, in general, all
%%  words which have at least two {\em a}'s their name.
%%  \horizontalline
%%  For more information, see:\newline
%%  \downlink{Logical Searches}{LogicalSearches}\tab{17}Using {\em and}, {\em or}, and {\em not} in search strings
%%  \newline
%%  %\downlink{Searching Text}{SearchingText}\tab{17}Using search keys to search text
%%  %\newline
%%  %\downlink{Some Details}{SearchOptions}\tab{17}Conventions and options you should know
%%  \endscroll
%%  \end{page}
%%
%%  \begin{page}{LogicalSearches}{Logical Searches}
%%  \newline Here is an \downlink{input area}{ugHyperInputPage}:
%%  \inputstring{filter}{35}{}\newline
%%  and here are some names of greek letters we will
%%  \lispdownlink{search}{(|htGreekSearch| '|\stringvalue{filter}|)}
%%  for:{\em
%%  \table{{alpha}{beta}{gamma}{delta}{epsilon}{zeta}{eta}{theta}{iota}{kappa}{lambda}
%%  {mu}{nu}{pi}}}
%%  \beginscroll
%%  For more complicated searches, you can use
%%  {\em and}, {\em or}, and {\em not} with basic search strings.
%%  Just write logical expressions using these three operators just like
%%  in the \Language{} language.
%%  For example, {\em alpha or beta} will match the first two greek letters,
%%  {\em *a* and *p*} will match all greek letters which have both an
%%  {\em a} and an {\em p}, and
%%  {\em not alpha} will match all the greek letters but {\em alpha}.
%%  \par
%%  Use parentheses for grouping.
%%  For example, {\em *a* and (not *p*)} will match the greek letters that
%%  contain the letter {\em a} but no letter {\em p}. Get the idea?
%%  \par
%%  There is no limit to how complex your logical expression can be.
%%  For example {\em a* or b* or c* or d* or e* and (not *a*)} is ok!
%%  \endscroll
%%  \end{page}
%%
%%  \begin{page}{SearchingText}{SearchingText}
%%  Here is an \downlink{input area}{ugHyperInputPage}:
%%  \inputstring{filter}{35}{}\newline
%%  and here are two lines of text we will
%%  \lispdownlink{search}{(|htTextSearch| '|\stringvalue{filter}|)}:\indent{2}
%%  \table{
%%  {{\em Fruit flies} *like* a {\em banana with cauliflower ears.}}
%%  {{\em Sneak Sears Silas with Savings Snatch}}
%%  }\indent{0}
%%
%%  \beginscroll
%%  Up until now, you have only learned how search strings match single
%%  words.
%%  Search strings can also be used to search text, e.g. the documentation
%%  for the library and \HyperName pages.
%%  Here the conventions are a bit different.
%%  \par
%%  If the search string is a word containing no wildcard {\em *},
%%  it will only match text containing that identical word.
%%  For example, the search string {\em ears} will match the
%%  first line (with {\em ears})
%%  but not the second line (with {\em Sears}).
%%  \par
%%  If the search string is a word containing {\em *} at its beginning
%%  or end, it will match a string with arbitrary characters at the beginning
%%  or end, respectively.
%%  For example, the search string {\em *ears} will match both the
%%  first line with {\em ears} and the second with {\em Sears}.
%%  \par
%%  As usual, you can use \downlink{and, or, not}{LogicalSearches} in your
%%  search string. For example, {\em *ears and sa*} will only match the
%%  second line with {\em Sears} and {\em Savings}.
%%  \par
%%  If your search string needs to contain a {\em *}, the words {\em and},
%%  {\em or}, or {\em not}, precede the first character of these special strings
%%  with  an underscore
%%  ({\em _}) (the escape character).
%%  Thus {\em _*like_*} and {\em _and} will match the first line.
%%  The search string {\em _^} (meaning any word beginning with {\em *}) will also
%%  match the first line.
%%  \par
%%  Your search string can also have two or more words.
%%  For example, {\em califlower ears} will match the first line.
%%  If the phrase contains an {\em and}, {\em or} or {\em not},
%%  be sure to place an underscore before the first character.
%%  For example {\em bananas and califlower} and {\em bananas _and califlower} have
%%  quite different meanings!
%%  \par
%%  Search strings however will not match adjacent words formatted differently.
%%  For example, {\em a banana} will not match the first line since "banana"
%%  is in italics and "a" is not.
%%  \horizontalline
%%  %See Also:
%%  %\newline
%%  %\downlink{Some Details}{SearchOptions}\tab{17}Conventions and options you should know
%%  \endscroll
%%  \end{page}
