The 'search' variable determines the kind of search performed on the database by the 'prog' command, providing flexibilty on search times and ranges. 'search' is a string variable whose value is one of the following: (1) "sub" Substring (case insensitive). A simple, everyday substring search. A match occurs if the the file (or directory) name in the database contains the user-given substring. Example: "is" will match "islington" and "this" and "poison" (2) "subcase" Substring (case sensitive). As above but the case of the strings involved becomes significant. Example: "TeX" will match "LaTeX" but not "Latex" or "TExTroff". (3) "exact" Exact match. The fastest search method of all. The restriction is that the user string (the argument to the 'prog' command) has to _exactly_ match (including case) the string in the database. This is provided for those of who who know just what you are looking for. For example, if you wanted to know where all the "xlock.tar.Z" files were, this is the kind of search to use. (4) "regex" This is the DEFAULT search method. ed(1) regular expressions. Searches the database with the user (search) string which is given in the form of an ed(1) regular expression. NOTE: Unless specifically anchored to the beginning (with ^) or end (with $) of a line, ed(1) regular expressions have ".*" prepended and appended to them. For example, it is NOT NECESSARY to say prog .*xnlock.* since prog xnlock will suffice. Thus the regex match becomes a simple substring match. There are also compound searches made up of combinations of the above search methods in sequence: exact_sub Try "exact". If no matches found use "sub". exact_subcase Try "exact". If no matches found use "subcase" exact_regex Try "exact". If no matches found use regex. An "ed(1) regular expression" (from here on called RE) is the particular type of regular expression used in the "ed" editor under Unix. For those who are interested in all the gory details of REs see the help for "regex" (which is incomplete, at the moment :-(), otherwise what follows should be sufficient for most needs. A regular expression is a convenient way to search for a set of specific strings matching a pattern. To be able to specify such a pattern with only the ordinary set of printable character we have to co-opt some of them. For example in a RE the period means _any_ single character, while an asterisk, '*', means zero or more occurences of the *PRECEDING* RE. For example: knob - matches any string containing the substring 'knob' a*splat - matches strings that contain zero or more a's followed by the string 'splat' #.*# - would match anything containing a '#' followed by zero or more occurences of _any_ character, followed by another '#' Other special characters that may be useful are '[' and ']', which are used together. They can be used to specify either a set of characters to match or a set of characters to not match. An example of the first case is: [abcd] which matches any of one of the four letters, while an example of the second case is: [^abcd] in which the '^' _in_the_first_position_ means that any character _not_ in the list will be matched. As well, ranges can be specified with a '-'. [a-z] matches any lower case letter and, [^a-z] matches any character other than a lower case letter. Furthermore, you can specify multiple ranges such as: [%@a-z0-9] or [^A-Za-z] meaning: match '%' or '@' or any lower case letter or digit, and match any character other than a letter, respectively. When you want to match a character which has a special meaning you should precede it by a backslash, '\'. Some final examples of REs are: [Mm]ac\.txt - match anything containg the string "Mac.txt" or "mac.txt" [^aeiou][^aeiou]* - match any string consisting entirely of non-vowels foo-v[0-9]\.tar\.Z - match "foo-v0.tar.Z" through "foo-v9.tar.Z" Good luck, and remember that many things can be found with only a simple substring (e.g. latex).