= Search string

        {FINd | IFInd | EXClude | IX | FNX | INX}
                 [!] {string | * | *e | *ec | *g | *L | *u | *=[n] | *=Mn | \esc | P'pics'}
                     [-g]
                     [U[B|L|8|4]]
                     [col-range] [& [!] string2 [col-range2] [-d[<|>]n]
                     [all | next | + | prev | - | first | last]
                     [-cont]
                     [.lab1 .lab2] [l-column | LM | RM [r-column]]
                     [-a[-]n] [-b[-]n] [-c[{L|R}m][{T|B}n]] [-j|-je]
                     [-Llcmd] -m[n] [-nx] [.lab1 .lab2]
                     [-{PSP|PSF}[X|R|D]]

                    ( "\" = 0x5c = backslash )

            col-range:[c1 | LM | RM [c2] | eol | maxeol]

            FIN     :Case sensitive search
            IFI     :Case Insensitive search
            EXC     :Find string and then exclude the line.
            IX      :IFInd string and then exclude the line.
            FNX     :FINd excluding excluded line.
            INX     :IFInd excluding excluded line.

            !       :search lines not containing the search word.
            string  :use quotation for space embedded or for special
                     string as following.
                     For ex, "F '.exe'", "F 'set up'".
                     To exclude all lines,specify simply "EXC ALL".
                     Word followed by "\n" means matching at EndOfLine.
                     ex.) "F word\n".
                     'F "a b"\n' is invalid, 'F "a b" eol' is valid.
                     'F *\n' search EndOfLine position.
                     'F "*"\n' search "*" at the eol position.
            &       :search line containing 2 word. ex). word1 & word2.
            *       :search same string as previous search command
                     Use it to search changing direction like as
                     f * last.
                     search range is not inherited.
                     No effect for 2nd word of &(AND) search.
            *u      :search updated line.
            *e      :search error line.
                     shift err,line cmd err etc.
                     "." label cmd can be used as marks.
                     set any label on lineno column and search by "f *e" cmd.
            *ec     :search UTF8 translation error code position for the file opened with CPU8 option.
                     *e is also avail for the line containing translation error until the line is updated.
            *g      :search grep'ed line by current screen grep.
                     After -g option support, GREp cmd will not be used to search on currently opened screen.
                     But this option yet remains.
            *L      :search matched(unmatched if combined with !) line
                     of the result by line cmd "=" or result of TC cmd "=="
                     operation.
                      ex) after compare by "=" line cmd,
                            "x *l all; del x all" will delete all matched line
            *=[n]   :exclude repeated lines over n+1 lines.
                     column to be compared may be specified.
                     pattern "x *= all" is just avail. Default n is 1.
                     you can deduce file size by "dro x all" after
                     exclude cmd with this option.
                     "x *= all" leave 1st line of each same line block
                     displayed,to exclude also 1st line,use /b0 option.
                     specifying minus on -a parm bottom line may be
                     remain as not excluded.
                     ex, "x *= -a-1" 2 line of top and bottom remain
                     as not excluded.
            *=Mn    :key matching of 2 file on the split screen.
                     check the word is exist or not on the file of the other side.
                     n:key position of the file of the other side
                     key position of the current file is specified by search
                     range column parameter.
                     key is highlightened when search succeeded.
                     On the other side, matched key is flagged as error line
                     Lineno field is highlightened and can be searched by "f *e".
                     ex) "x *=M6 10 18; del x all"
                         search the line column 10-18 of this file match to the column 6-14
                         of any line of the file of another panel.
                         "x" then "del" cmd will delete all matched lines.
            \esc    :Following 1 byte escape sequence and hex notation
                     is available.
                     \a (bell=0x07), (BS=0x08),\t (H-tab=0x09)
                   \n (LF=0x0a),\v (V-tab=0x0b), (FF=0x0c)
                     \r (CR=0x0d),\x(even number of hex notation)
                     ex of hex notation. \x8281 , \x09 , \x0c ,
                     \a or \x0d0a can not be found if it is treated as
                     line terminator at file load.
                     It cannot be used with other char like as \aX
                     Tab(x09) is not allowed with others like as \x0920
                     for text file.
                     IFInd is treated as FINd(case sensitive).

              (Note) Character boundary is considered for \x__ notation of search/replace
                     string for UTF8 file. it should be 4 bytes multiple.
                     aa of \xaabb dose not match to yy of u-xxyy.
                     it may match to xx of u-xxyy.
                     ex) c \x30003000 \x20202020

            P'pics' :specifys char-class for each byte.
                     Other than special character is searched itself.
                     Lower/Upper specification has no meaning for IFInd cmd.
                     Tab(0x09) match to space(searches in the line after tab expanded).

                     Char-class specification.
                       =  any character
                       .  non-displayable characters([^[:cntrl:]] by regular expression; 0x00-0x1f,0x7f,0x80 except 0x09.)
                       @  alphabetic characters     ( [[:alpha:]]  )
                          Uses [A-Za-z] on Japanese environment.
                       -  non-numeric characters    ( [^[:digit:]] )
                       #  numeric characters        ( [[:digit:]]  )
                       <  lower case letter         ( [[:lower:]]  )
                       $  special characters        ( [[:punct:]]  )
                       >  upper case letter         ( [[:upper:]]  )
                       ^  non-blank characters(alternative of EBCDIC "NOT" sign)
                          0xac (Not sign of ISO Latin1) is also OK.
                                                    ( [^[:space:]] )

                     ex). P'x.@#'
                          Enclose pattern by quotation to search space, comma or semicolon like as "P'ABC== ###'"
                          Use "\" as escape to search class specification char itself like as P'ABC\=\=##\.##\\'.

            -g      :specifies string is regular expression.(grep search)
                     This is applied to string2 of AND search,but both is not necessary to be
                     regular expressions.
                     Tab(0x09) match to space(searches in the line after tab expanded).
                     ex) "f abcd|efg -g" searches word "abcd" or "efg".

              (Note) For UTF8 file,it may not work correctly by the reason of
                     internal data structure for non ASCII character.
                     Use this option being aware this facts.
                     There may be no problem if whole line contains only ascii character.

                     xe uses GNU API(re_compile_pattern and re_search) with following syntax options.
                     (Windows version extracted sources from GNU regex v2.7)

                       RE_BACKSLASH_ESCAPE_IN_LISTS :off: backslash is backslash in [ ]
                       RE_BK_PLUS_QM                :off: not \+ or \*  but + or *
                       RE_CHAR_CLASSES              :on : use character class such as [:alpha:]
                       RE_CONTEXT_INDEP_ANCHORS     :off: ^, $ has meaning if at proper position
                       RE_CONTEXT_INDEP_OPS         :off: +, * has meaning if at proper position
                       RE_CONTEXT_INVALID_OPS       :off: +, * is normal char if at not proper position
                       RE_DOT_NEWLINE               :on : . match to newline
                       RE_DOT_NOT_NULL              :off: . match to null
                       RE_HAT_LISTS_NOT_NEWLINE     :on : [^...] unmatch with newline
                       RE_INTERVALS                 :on : use interval { and }
                       RE_LIMITED_OPS               :off: use + * |
                       RE_NEWLINE_ALT               :off: newline is normal char
                       RE_NO_BK_BRACES              :on : use { and } not \{ and \}
                       RE_NO_BK_PARENS              :on : use ( and ) not \( and \)
                       RE_NO_BK_REFS                :on : no use bkwd ref \n(digit)
                       RE_NO_BK_VBAR                :on : use | not \|
                       RE_NO_EMPTY_RANGES           :on : invalid when range list seq down in [ ]
                       RE_UNMATCHED_RIGHT_PAREN_ORD :on : unmatched ) is treated as normal char

                       RE_ICASE(case insensitive) is used for IFInd cmd.
#ifdef UTF8SUPP

            U[B|L|8|4]:search UCS2/UCS4/UTF8 code on binary file.
                       Case-Sensitive even if IFInd cmd.
             U   : option prefix.
             B/L : Search UCS2 by BigEndian/LittleEndian mode. default depends on the O/S("L" for 80x86 strings).
                   ex) "F 123 UB" searches 0x'003100320033',
                       "F 123 UL" searches 0x'310032003300'.
             8   : Search UTF8 code.
                   Keyboard input code depends on A+u status indicated by cmdline prefix.
                   "=u=>"  means UTF8, "===>" means locale code.
                   Search UTF8 code by U8 option when locale code mode.
                   Use "U8" option to search UTF8 code on the file opened with CPLC
                   and keyboard is locale mode.
                     ex). F x U8
                      Assume "x" is locale code, 0xa0 as a example,
                      this cmd search 0xc2a0 (UTF8 code corresponding to 0xa0).
             4   : FINd cmd:search not 2 byte ucs but 4 byte ucs.
                   Specify for each word when &(AND) search.
                      (ex) f Micro U4 UL & Vender U4 UL
                   CHAnge cmd:hex notation of replacing string is UCS4.
                     ex).  C abc  \x10fffd   u4
                   If missing U4 on CHAnge cmd on UTF8 file, replacing string is assumed as UCS2
                     ex).  C abc  \x30203021
#endif

            all     :search all lines of the file
            allkx   :all without revealing found word on excluded line.
            next    :search forward from cursor position.
            +       :same as next
            prev    :search backward from cursor position.
            -       :same as prev
            first   :search forward from start of file.
            last    :search backward from end of file.
            -cont   :search starts from the succeeded found position just before.
                     When selecting lines in a large file by the Find command in the EXE cmd file,
                     from a performance consideration,
                     when NotFound occurred, the next Find will start not from the first line,
                     but from the last Found line.                       
                     It will be better on condition that files were sorted.
                     Available only in Exe cmd file.
            .lab1/2 :Limit search line range using a pair of label
                     on lineno column. line number may be used so as to
                     limit line range with no label on lineno column.
            c1      :left-most column of search range.
            c2      :right-most column of search range.
            LM      :search Left margin only.
            RM      :search Right margin only.
            eol     :search EndOfLine only.
                     ex) F "a b" eol (F "a b"\n is err)
            maxeol  :search EndOfLine of lines with maximum length.
            ATTR    :Search file attribute column on dir-list panel.
                     Parameter is case insensitive.
                     Use "d" for directory, "L" for symbolic link.
                     Specify "d" and "L" alone each.
                     For other attributes, on Windows, select the line having all attributes of parameter,
                     on Linux, select the line having string of attribute parameter.
                     Following attribute IDs are specific to Linux.
                        u:setuid, g:setgid, S:setuid+setgid, t:stickey
                        c:char device, b:block device, p:pipe, s:socket
                     e.g.) (Windows) f SH attr ; f R attr & 17-08 ; f D attr & L attr
                           (Linux) f 775 attr ; f u attr
            -a[-]n  :display/exclude n lines after the line of the word.
                     For & search,base is the line containing the 2nd word.
                     "-" means "before the line" and -b option is also
                     required.
            -b[-]n  :display/exclude n lines before the line of the word.
                     For & search,base is the line containing the 1st word.
                     "-" means "after the line" and -a option is also
                     required.
            -c[{L|R}m][{T|B}n]:scroll option.
                     scroll page to display found word on the specified place.
                     Column is by L(from Left)/R(from Right),
                     line is by T(from Top)/B(from Bottom).
                     "-c" means "-cR"(word is right-most position).
                     Without -c option,no scroll is done when word is found
                     in the current page,else scroll to display the line
                     in the middle.
            -d[<|>]n:distance of 2 word of & search. n:line count.
                     -dn :word2 is on the next n'th line.
                     -d>n:distance is over than n lines.
                     -d<n:distance is lower than n lines.
                     without -d option or -d0,& search 2nd word only
                     on the line 1st word found.
            -j      :join lines between -a and -b or -d range for &(and)search.
            -je     :join up to EndOfFile.
                     if 1st word found and 2nd word is not found,
                     joins from 1st word line to end-of-file line.
                     ex.) i StartID & StartID -d>1 -a-1 -j.
                     this cmd remains not joined line at EndOfFile,
                     but -je option dose not.
            -Llcmd  :set line cmd on the line-no field of the found line.
                     ex) f StartLineID -Lcc;f EndLineID -Lcc;rep partialcopyfile
                     create partialcopyfile from the line contains "StartLineID"
                     to the line contains "EndLineID".
                     this is for cmd in the EXE cmd file.
            -m[n]   :not reset previous found word reverse display.
                     it is effective for next r-find(PF5)
                     n:do that from next r-find(PF5).
            -nx     :search on displayed lines only(same as INX/FNX)

            .Use function key(F5/Shift+F5) to re-search same word.
             Searching re-start from top/bottom when same function key is
             hit after reached to bottom/top.
            .Entering operand only and press function key,it start
             case insensitive search(F5) or case insensitive reverse
             search(Shift+F5).If command verb(only abridgement is allowed)
             is also input,case sensitivity depend on the command verb.
            .Tab and its following space is assumed same as space char.
            .Refer "About word" for how to specify string.

            -{PSP|PSF}[X|R|D]

              . PSP:applied to the split screen, applied also to not split screen.
                PSF:applied to the Edit/Browse file/directory panel.
                X:specify -PSPX/-PSFX alone, execute latest PSP/PSF command.
                R:specify -PSPX/-PSFX alone, set latest PSP/PSF command to cmd line.
                D:specify -PSPX/-PSFX alone, display PSP/PSF command effective now.
              . Use PSD cmd to display PSP/PSF command effective now.

              . Ctrl+F5 (re)find using PSP cmd, Alt+F5 (re)find using PSF cmd.
                Ctrl+Shift+F5, Alt+Shift+F5 switches search direction.
                If find cmd operand is set on cmd line,
                PSP/-PSF option is selected from cmd line regardless function key used(F5, C+F5 or A+F5).
                PSF cmd saved is lost when the file is closed.
                Latest two PSP cmds saved are recovered at restart as for SPLIT(1) and SPLIT(2).
              . On Linux, Alt+F5 may be assigned as default shortcut key.
                Inactivate it by Linux Settings-->Shortcut, change Function-Key assignmeny on xe =0.2 panel.

              . This function enable 3 pattern's search on a file.
                After followings
                  F abcS
                  F abcP -psp
                  F abcF -psf
                F5 searches "abcS", Ctrl+F5 searches "abcP" and Alt+F5 searches "abcF".
                To continue search same pattern, use same key.
                (ex) "F abcP -psp", C+F5, C+F5, S+C+F5
              . Change cmd is not supported.
              . Enclose by quotation to search "-PSP" itself. (ex) F "-PSP".