Overview of Search Options

Knaxim utilizes powerful search technology to expertly identify matches. Described below is how Knaxim interprets what is entered into the search bar, along with helpful hints and tricks.

Basic Searches

If the contents of a search are only composed of letters, numbers, and spaces, then Knaxim will look for any occurance of that sequence within the set of files it is searching through.

  • and = "and", "hand", "andrew"
  • strong = "strong", "strongly", "super-strong"

tip: if you want to find an exact word, try putting a space before and after the word in the search bar. So instead of "it" put " it ". this will cause the search to also match the surrounding spaces causing it to ignore longer words that contain the same seqence of letters.

Responsive image

Variable Character Expressions

Within a search expression, it is possible to indicate that a particular letter in the search phrase can match more then one possible letter. For example, it is possible to simultaneously search for "read" and "road" using "r[eo]ad."

Expression Explanation


a period will match any character, "c.t" will match "cat" and "cut"
[xyz] Character Class: matches any character listed between the brackets. [xyz] will match "x", "y", or "z"
[^xyz] Negated Character Class: matches any character not listed between the brackets. [^xyz] will match anything but "x", "y", or "z"
[[:name:]] Predefined Character Class: there are several different built in character classes identified by their name (see chart).
[^[:name:]] Negated Predefined Character Class: matches any character not within the predefined character class

Predefined Character Classes

Some Useful Character Classes that are already defined and can used by their name. [[:alpha:]] matches letters for example. On their own they only match a single character. See Repitition for how to extend this to multiple characters.

Name Associated Characters
alnum any number or english letter
alpha any english letter
digit any number
lower any lower case english letter
upper any upper case english letter


It is possible to construct more complex search queries from simpler search queries. To do so, the simpler queries that are longer then a single character are surrounded by parentheses to specify where the query begins and ends. There are two basic ways to combine queries. First two queries written next to each other are interpreted to mean that a match to the whole query will contain a match to each sub-query in the other order they apear. Used alone this method does make the use of parentheses redundant, but it becomes important when used in conjunction with other elements. The second way to combine queries is by using the | symbol, found as shift+\ on most keyboards. This is interpreted as OR. The full query will be considered matched if either side of the | is matched.

Example Interpretation
(cat) the same as cat. the parentheses are redundant in this example.
(cat)(dog) the same as catdog. the parentheses are redundant in this example.
(cat)|(dog) this will match cat or dog.
cat|dog this will match catog or cadog. Without the parentheses the | only applies to the single characters on either side.
re(do)|(apply) this matches redo or reapply


There are several different ways to indicate that the search should look for a variable number of copies of a character or query. They are all added at the right side of the element that will have the variable number of occurances. The particular symbol indicates the number of copies to search for.

Symbol Meaning
* an asterix (shift+8) will look for zero or more copies. ca*t will match ct, cat, caat, caaat, and so on.
+ look for one or more copies. ca+t will match cat, caat, caaat, and so on. but not ct
? look for zero or one copies. dogs? will match dog or dogs
{n} look for exactly n copies. (jo){3} is effectively the same as jojojo
{n,m} look for at least n but not more then m copies. w(ow){2,4}ee will match wowowee, wowowowee, and wowowowowee.
{n,} look for at least n copies. ru(jo){3,}le will match rujojojole and rujojojojole, as long as there are at least 3 jo


here are some useful examples to help guide your searches

Example Interpretation
[.*+?[()] In order to match the characters that normally have a special meaning, you can put them in a character class and they'll be interpreted as character to match rather then their normal meaning.
[]] As a special case, if ] imediately follows [ when defining a character class, then it is iterpreted as a member of that class rather then being the closing marker. This is how you can search for the ] character.
.* This will match any sequence of any length. This can be useful as a separator of other search terms while preserving the order of those terms. (the.*cat) will match "the cat" and "the angry cat" but not "cat ran to the"