## Search a file for selected words and phrases

Enter name of file to search:

Enter search string: (Usage hints)

### Advanced options .....

Paragraph delimiter :
- Leave blank for "blank lines define paragraphs"
- Use $ for "each line is a paragraph"
- Enter custom delimiter (i.e. the ; character )

Display the first lines of each paragraph

Do NOT display line/paragraph number
Do NOT draw horizontal bars at the end of each paragraph
Use expert mode (when processing searchlist)
Case sensitive search

### Usage hints

#### Non-expert mode (with highlighting)

Two "meta commands" and 4 target specific instructions are recognized.
Meta commands are signified by *& or *\ at the beginning of the search string.
- *& means "find paragraphs that match ALL targets in the search string"
- *\ means "find paragraphs that match NONE of the targets in the search string"
If there are no meta commands, the following "target specific" commands are recognized.
- & means paragraphs MUST have this target
- | means accept paragraph if it has this target
- Note that | is the default (assumed if no target specific command entered).
- \ means paragraph must NOT have this target
- % means accept paragraph if it does NOT have this target

##### Summarizing ..

To be a "found" paragraph:
- Any | must be present, or
- All of the % are missing
- Given the above is satisfied, then
- None of the \ can be present, and
- All of the & must be present
If present, all & and | targets will be highlighted

Examples:

( The best car)
  Finds paragraphs containing the phrase `the best car`
car truck motorcycle
  Finds paragraphs that contain one (or more) of `car, truck` or `motorcycle`
dog cat & store (pet pig)
  Finds paragraphs that contain one (or more) of `dog, cat` or the phrase `pet pig`; and that also contain `store`
*& computer price memory
  Finds paragraphs that contain `computer, price`, and `memory` (must have all of them, but can be in any order)

#### Expert mode (no highlighting)

The user enters a logical expression using the following operators:
- & = AND
- | = OR
- \ = NOT
- @ = XOR
- ( ) to group expressions
A sequence of words without any operators is treated as a phrase -- to treat each word as a seperate subword, put ( ) around each one. Basically, when using this mode, be liberal in your use of ( ), and complete in your placement of operators.

Examples:

The best car
  Finds paragraphs containing the phrase `the best car`
car | truck | motorcycle
  Finds paragraphs that contain one (or more) of `car, truck` or `motorcycle`
( (dog & cat) | (pet pig) ) & stores
  Finds paragraphs that contain `stores`, and that contain either both `dog` and `cat`, or the phrase `pet pig`