Pattern

Main

 

The pattern search is an option in the Combination search and the Query. Following are some basic rules for creating pattern searches.

Basic

Pattern searches allow you to specify the word pattern. You can search for words using a pattern if you know some of the letters in the word and their order, like on a scrabble board. Pattern uses a few characters as wildcards or generic specifications.

The ? will replace any unknown character. That is a standard with other word search engines.

Any letter followed by a ~ is an optional match.

The * will replace any number of unknown characters. A period can also be used for this purpose.

The lowercase letters 'c' and 'v' will search for consonants and vowels respectively.

Valid numbers will be replaced by a letter with that value. The value used is now is based on the currently active TileSet. See Tools > Options to change that.

Example: ATT???ABLE will give you two words, ATTACHABLE and ATTAINABLE.

Example: c*ION all words that begin with consonant and end in ION.

Example: Mvv* will show all words beginning with M and two vowels.

Example: 4??? will show all four letter words beginning with F, H, V, W, or Y if using the English Scrabble TileSet.

You could also use patterns for other types of searches, such as prefixes. PRE* will return all words that begin with PRE. You could also find words that contain a subword, such as, *ATE*.

Note: Like other screens, Hoot will convert letters to uppercase, but notice that this screen does allow you to enter some lowercase letters and numbers. That's because the search allows you to specify consonant or vowel in the search with lowercase 'c' or 'v'. If you are searching for a 'C' or 'V' and not a consonant or vowel make sure the search includes the uppercase letter.

Regular Expressions

The pattern search is based on regular expressions. I have simply overriden the normal ?, c, and v to enable non-regexp savvy users to do searches. That also means that you could also use most regexp patterns. Search the internet for a Reg Exp cheat sheet if you want to try some. Hoot's search automatically provides the beginning of word, end of word in the pattern, so ^ and $ have no purpose. To search within a word, use the * at the beginning or end. Except for the c and v, the input box forces all characters to uppercase.

Pattern Rules

Patterns are made using pattern matching rules or regular expressions, with a couple of exceptions. Following are the most basic rules for pattern searches.

Blank Match: Matches one character. In Hoot you can specify the wildcard with a "?". This differs from the standard Regex rule for matching a single character which uses a "." (period).

Wildcard: In Hoot, you can match any number of letters with a "*". In standard regexp searches, matching all characters requires using a "." (period) followed by a *.

Optional match: If you want to match zero of more of any specific character, follow the character with a "~". This won't work in standard Regex. Most of the rest comes from the standard Regex documentation.

Character groups: Including a set of characters within brackets searches for one of the characters in brackets.
The group [AE] will match with the "A" in "GRAY", or the "A" or "E" in "LANE".

Character group negation: Including a set of characters within brackets and adding the ^ at the beginning will match characters not in the group
The group [^AEI] will only match with the "R", "G", "N" in "REIGN"

Character range: Matches any single character in the range from first to last.
The range [V-Z] will match the "V" in "VICTOR".

Subword pattern: Matches any set of characters in parentheses separated by the vertical bar (|) character.
TH(E|IS|AT) matches "THE", "THIS", and "THAT".

Multiple matches: matches the previous character one or more times. Including a "+" following a character matches that character one or more times. O+ will match words with one or more O's.

Match n times: Matches the previous character the number of times in the braces. O{2} will match words with two successive O's.
Match at least n times: O{n,}
Match at least n times, but no more than m: O{n,m}
This doesn't work as well with character groups. *[DL]{2} will find words ending in two letters (either D or L), including ADD, ALL, as well as ELD. See Capture groups next.

Capture groups: (Fixed with 1.8.0) Matches letters based on previous letter matches. Include the letters to match in parentheses, and a \ followed by a number to match that group number.
*(J)\1 finds words ending with two J's, though you could just as easily used *JJ.
*([DL])\1 is more useful. It will find words ending in either double D or double L, like ADD, ALL, and ELL. ELD would not be included in that group.
*(?)\1 finds words that repeat any letter at the end, like AA, MM, ADD, AFF...

Hoot Sub-patterns

Within Hoot pattern searches you can add sub-patterns to select a letter or set of letters to use. Note: This is NOT a standard regular expression rule. Sub-patterns consist of a word within angle brackets including a ? to indicate the letter(s) to include. <W?IT> will return the character group containing every letter that can be used to complete the W?IT subsearch, which would be [AHR] in the Collins lexicon. If you want to find words parallel to JAW, with the IT to the right of the W, the pattern would be *<J?><A?><W?IT>*, which would translate into the regular expression *[AO][ABDEGHILMNRSTWXY][AHR]* and return 4917 words up to 7 letters in length. This can useful when analyzing a play that involved playing between/through an existing play.

Sample Searches

*RR+* would find all words with one or more R's, that is, with one R and one or more R's following, including BRR, ERR, BRRR, ERRS.

F[JY]* would find all words beginning with F, followed by either J or Y, including FYCE, FYKE, FJELD, FJORD.

[XZ]? would find all words an initial letter of X or Z, and one other character. Depending on the lexicon, it would return XU, XI, and ZA.

*[QXZJ]* would find all words with one of the characters, Q, X, Z, or J. There are almost 16,000 of them.

*[QZXJ]c* would find words with a QZXJ followed by a consonant. *(8|10)c* will do the same.

*(XY|ZT|ZY)* would find all words with one of the patterns in parentheses, including OXY, XYST, ZYME, ZYZZYVA

(???[FHKVWY]|[FHKVWY]???) would find all 4-letter words beginning or ending with F, H, K, V, W, or Y. (???(4|5)|(4|5)???) will do the same.

You might not know it but there are 50 words with either two Q's, two J's, or a Q and a J. You can find those with *[QJ]*[QJ]* in the pattern search box.

Words with a Q without a U following can be found with *Q[^U]*, and the complex pattern (Q[^U]+|[^U]+Q[^U]+|[^U]+Q) is one way to search for all words with a Q, but no U at all.

And (Q[^U]*U*|[^U]+Q[^U]*U*|U*Q[^U]*|U*Q) would find the four words with a Q and U, but the Q doesn't follow the Q (QIVIUT, QIVIUTS, UMIAQ, UMIAQS).

(???)\1 finds words that repeat the first three letters, like ATLATL, BONBON, CHICHI...

(?)*\1 finds words that begin and end in the same letter.

(?)(?)*\2\1 finds words that end with the beginning letters reversed, like words beginning with DE and ending in ED.

*(v)*\1*\1*\1* finds words with four of the same vowel, like BEEBEE, BOOHOO, MUUMUU...

?<J?BE><Q?><W?STED> finds words that begin with any letter and contains the letters that complete the subsearches J?BE, Q?, and W?STED. In Collins that includes the words HUIA and KUIA. (Hoot only)

Most other searches can be accomplished using Pattern rules. The entry ???? will search for words with four letters, *ER will search for words ending in ER, and *J* will search for words containing the letter J.

For a more complete list of rules see https://msdn.microsoft.com/en-us/library/az24scfc%28v=vs.100%29.aspx?f=255&MSPPError=-2147217396. Note that some of the options are irrelevant since there are no newlines, tabs, spaces, or actual numbers in the words.