Filename Selection

We provide a custom wildcard system which provides more flexibility than either the DOS or Unix wildcard systems.  You can select multiple files from a directory using the following rules:
1) Multiple sets of filenames can be selected using ^
2) Each filename can contain 1 or more string tokens separated by *
3) Each * also stands for one character (or more)
4) Filenames which contain all individual tokens in the filename entered, in the correct sequence will be selected
5) The index of an individual token in the filename selected cannot be less than the index of that token in the filename entered
6) The length of the filename selected will always equal or exceed the length of the filename entered
7) If * (or multiple *)  is at the end, it is ignored.  However, the length of the filename selected will equal or exceed the length of the filename entered
8) For exact filename search, use # at start of filename.  This ensures only one file with the exact name will be selected
9) To exclude filename(s), use ! at the start of filename.  The exclusion filename should be followed by at least one other token separated by ^.  The exclusion filename(s) should also be listed before any normal filename ex: !.zip^*  or !.zip^.txt  or  !.txt,!.zip,.htm,.gif

Consider a directory with the following files:
junk, test, temp, temp1, temp.txt, temp.htm, Test, Temp.txt, teeempju.txt, activityLog.txt, debugLog.txt, test.zip, test.gif
 
Filename entered Files Selected
  All files selected
* All files selected
te test, temp, temp1, temp.txt, temp.htm,teeempju.txt
ju junk,teeempju.txt
T Test, Temp.txt
.txt temp.txt, Temp.txt, teeempju.txt, activityLog.txt, debugLog.txt
te*htm temp.htm
te*emp teeemp.txt
te*htm^debug temp.htm, debugLog.txt
te*htm^te*emp^debug temp.htm, teeemp.txt, debugLog.txt
temp*.txt No files selected (temp.txt is not selected per rule 5)
*********** teeempju.txt, activityLog.txt, debugLog.txt (per rule 6)
est** No files selected (test, Test are not selected per rule 6)
est* test, Test (per rule 6 and 7)
#temp temp (per rule 8)
!.zip^* All files except test.zip (per rule 9)
!.txt^temp temp,temp1,temp.htm (per rule 9)