Qat

Qat lets you search for words matching a given pattern. It is the ideal tool for the discerning setter or solver of crosswords and other word puzzles. Try it now!

A French-language version of Qat is also available, with the same search syntax. Essayez maintenant!

Qat can find individual words matching simple and compound patterns (much like grep, Word Matcher and similar tools); beyond that, it also has an ‘equation solver’ mode that can find sets of words that simultaneously satisfy given constraints. Using this feature you can, for example, find pairs of words that are single-letter (or multiple-letter) misprints of one another, words that share common segments or that differ from one another in specified ways, words containing the same segments in different orders, and much more besides. See the examples below; a more formal explanation of the pattern syntax appears at the bottom of this page.

Examples

In all the following examples, ‘word’ means ‘word or phrase’.

Examples of ordinary patterns

To do this... ... enter this pattern... ... and get these results See for yourself!
Complete a crossword entry l.......v leitmotiv lermontov Try it
Complete a crossword entry with alternatives ..i[sz]e anise arise avise avize baize ... Try it
Match ranges of letters [l-p].[m-r].[w-z] lammy lanky lapaz lardy larky larry lenny limax ... Try it
Match disallowing certain letters ....i[!stz]e abusive acarine acquire adenine affaire airline airmile airside ... Try it
Match consonants and vowels #@#@#@#@#@#@#@ pararosaniline recapitulative rehabilitative supererogative verisimilitude Try it
Find all words beginning with xo xo* xosa xoana xoanon Try it
Find all words beginning with x and ending in a x*a xema xosa xenia xhosa xoana xeroma xyloma xerasia xylopia xanthoma ... Try it
Find all words containing the sequence xj *xj* vieuxjeu boxjunction boxjellyfish boxjunctions knoxjohnston Try it
Find all words with a j as the second letter, followed somewhere by a k .j*k* sjambok djakarta sjamboks sjambokked sjambokking Try it
Find all words which contain the vowels in order *a*e*i*o*u* caesious arsenious facetious haveitout parecious abstemious aeruginous ... Try it
Find all words which contain five consecutive vowels *@@@@@* euouae zooeae euouaes miaoued cooeeing miaouing queueing queueings Try it
Find all words which consist of ‘ace’ followed by a word ace> acetic acerate acerose acetate acetone acetose acescent acetates acetones acetabula acetabular Try it
Find all words of at most six letters beginning with x and ending in a -6:x*a xema xosa xenia xhosa xoana xeroma xyloma Try it
Find all words of seven to nine letters beginning with x and ending in a 7-9:x*a xerasia xylopia xanthoma xenophya xeromata xylomata xanthoura xenarthra xenomania xeroderma xerostoma xiphosura xylophaga xylorimba Try it
Find all words of at least ten letters beginning with x and ending in a 10-:x*a xanthomata xanthopsia xenophobia xerodermia xerostomia xenoglossia xanthochroia xanthochromia xerophthalmia Try it
Find all words of exactly nine letters which, when the first and last letters are deleted, makes a reversed word 9:.<. banisters canisters denitrate ... xenograft Try it
Find all words one letter away from bonge `bonge binge bodge bonce bongo bongs bonne bonze bouge conge longe Try it
Complete a crossword entry where one of the crossing letters may be wrong ?`str.g.ly scraggly scriggly stingily stodgily straggle straggly straitly strictly strigils strongly struggle Try it
Find all anagrams of triangle /triangle alerting altering integral relating tanglier triangle Try it
Find all anagrams of triangle plus one extra letter /triangle. clareting earthling faltering gnarliest ... Try it
Find words of at least seven letters made from given letters 7-:*/rpoyesdif perfidy periods prosify spidery Try it
Find all ten-letter words starting with q and ending in s which can be made from the letters of square peg in a round hole 10:q*s/squarepeginaroundhole quadruples quandaries quarendens quarenders queenhoods quinapalus Try it
Find all words that contain a q, an x, and a z /qxz* squeezebox squeezeboxes Try it
Find all words of at most eight letters that contain all the vowels -8:/aeiou* douleia eulogia miaoued moineau sequoia aboideau aboiteau aurevoir ... Try it
Find all words with a j as the penultimate or last letter *j. | *j j jo gju haj raj taj baju benj dojo fiji fuji gajo hadj haji hajj juju mojo ... Try it
Find all words starting with kn that are also words written backwards kn* & < knar knit knob knot know knub knaps knits knots knuts Try it
Find all words of at least twelve letters not containing a reversed sub-word 12-:! *<* drinkdriving flyingcircus gainstriving kicksywicksy offscourings quickthinking Try it
Find all words starting or ending with b no initial segment of which is a word ! >*. & (b* | *b) b ab ba be ... bwana bwazi climb clomb droob dweeb hbomb jacob jelab kebab kebob scrab scrub squab squib thumb vocab aplomb bhagee bhajee ... Try it

Examples using qategories

To do this... ... enter this pattern... ... and get these results See for yourself!
Find all words occurring in Moby Thesaurus II under the same headword as red {thes:red} hop hot raw tar barb blue junk lake laky pink ... ultraconservative anarchosyndicalist Try it
Find all words whose Princeton Wordnet definition includes the word color {def:color} bar bay dun dye gel hot hue jag jet ... bluegreen brilliant carnation chameleon chatoyant checkered chequered chlorosis chocolate chromatic ... platinumblonde lightemittingdiode Try it
Find all words appearing in article titles in Wikipedia category lists containing the word gershwin {cat:gershwin} ... aint band bass bess blue cake call clap face film gets girl ... beginners milwaukee symphonic wonderful summertime variations embraceable fascinating necessarily compositions Try it
Find all words given as a hypernym of agate in Princeton WordNet {hyper:agate} gem agate solid stone stuff entity matter quartz crystal mineral portion gemstone material relation calcedony component substance chalcedony abstraction constituent Try it
Find all words given as a hyponym of ungulate in Princeton WordNet {hypo:ungulate} ox ass bay cob cow dun elk ewe gnu hog ... aberdeenangus bactriancamel mountainsheep perissodactyl sableantelope stalkinghorse steeplechaser marcopolosheep peredavidsdeer stablecompanion przewalskishorse harnessedantelope rockymountaingoat Try it
Find all five-letter words beginning with z whose Princeton WordNet definition includes a word matching strip* {def:strip*} & z.... zebra Try it

Examples using the equation solver

To do this... ... enter this pattern... ... and get these results See for yourself!
Find exactly reduplicated words AA ... agar.agar agas.agas beri.beri blah.blah... fifty.fifty goody.goody ilang.ilang never.never night.night nudge.nudge nulla.nulla quina.quina... housey.housey pretty.pretty softly.softly talkee.talkee twenty.twenty Try it
Find reduplicated words differing in the initial letter ACBC;|A|=1;|B|=1;!=AB ... r.oly.p.oly... t.ohu.b.ohu... h.ogen.m.ogen... b.oogie.w.oogie c.urlie.w.urlie f.ender.b.ender g.ender.b.ender... n.iminy.p.iminy n.olens.v.olens... c.ulture.v.ulture... p.oopers.c.oopers... Try it
Find doubly reduplicated words AABB po.po.f.f sa.sa.ra.ra ti.ti.ca.ca no.no.nse.nse nudge.nudge.wink.wink Try it
Find even-length palindromes A~A ... pe.ep po.op se.es to.ot den.ned han.nah mal.lam mar.ram pul.lup red.der... Try it
Find odd-length palindromes A.~A ... te.n.et te.v.et aga.s.aga dei.f.ied nau.r.uan rep.a.per rev.i.ver rot.a.tor sei.t.ies sem.e.mes mala.y.alam rota.v.ator Try it
Find cyclically-permuted words AB;BA ... ch.in in.ch; ch.it it.ch; ch.ou ou.ch; ... lu.lu lu.lu; ... no.no no.no; ... Try it
Find cyclically-permuted words, avoiding reduplicated words AB;BA;!=AB ... ch.in in.ch; ch.it it.ch; ch.ou ou.ch; ... s.pud pud.s; s.pun pun.s; ... Try it
Find words with an interior k misprinted as an l AkB;AlB ... sil.k.iness sil.l.iness; stal.k.ings stal.l.ings; ... squea.k.ing squea.l.ing; under.k.ing under.l.ing; precoo.k.ed precoo.l.ed; sidewal.k.s sidewal.l.s; ... undercoo.k.ing undercoo.l.ing; mil.k.ingmachine mil.l.ingmachine Try it
Find sets of five words differing only in interior vowel AaB;AeB;AiB;AoB;AuB b.a.d b.e.d b.i.d b.o.d b.u.d; b.a.g b.e.g b.i.g b.o.g b.u.g; ... cl.a.cking cl.e.cking cl.i.cking cl.o.cking cl.u.cking; tr.a.cking tr.e.cking tr.i.cking tr.o.cking tr.u.cking Try it
Find sets of five words differing only in a vowel appearing anywhere AaB;AeB;AiB;AoB;AuB;|A|=0-;|B|=0- .a. .e. .i. .o. .u.; .a.m .e.m .i.m .o.m .u.m; ... m.a. m.e. m.i. m.o. m.u.; ... b.a.d b.e.d b.i.d b.o.d b.u.d; b.a.g b.e.g b.i.g b.o.g b.u.g; ... le.a. le.e. le.i. le.o. le.u.; mo.a. mo.e. mo.i. mo.o. mo.u.; ... tr.a.cking tr.e.cking tr.i.cking tr.o.cking tr.u.cking Try it
Find words with three consecutive interior consonants misprinted as three vowels A###B;A@@@B ... mi.zzl.ing mi.aou.ing; par.tym.an par.eoe.an; stren.gth.s stren.uou.s Try it
Find six-letter words with three consecutive consonants misprinted as three vowels A###B=......;A@@@B;|A|=0-;|B|=0-
or
A###B;A@@@B;|A|=0-;|B|=0-;|AB|=3
.cyc.lic .aeo.lic; c.lyp.ed c.ooe.ed; c.lyp.es c.ooe.es; ... per.tly. per.eia.; tal.cky. tal.eae.; ten.ths. ten.iae. Try it
Find strings that can be made into words by adding red or green Ared;Agreen sea.red sea.green; sha.red sha.green Try it
Find strings that can simultaneously complete two words draA;poAy dra.g po.g.y; dra.ck po.ck.y; dra.ke po.ke.y; dra.nt po.nt.y; dra.ps po.ps.y; dra.lon po.lon.y; dra.per po.per.y Try it
Find three five-letter words that can be put together to make a word A=.....;B=.....;C=.....;ABC
or
A;B;C;|A|=5;|B|=5;|C|=5;ABC
... compo sings ticks compo.sings.ticks; ... exist entia lists exist.entia.lists; ... honey combs titch honey.combs.titch; ... north anger abbey north.anger.abbey; ... super visor ships super.visor.ships; ... thumb nails ketch thumb.nails.ketch Try it
Find a pair of words, one obtained from the other by replacing an interior jumble of blue with a jumble of orange A/blueB;A/orangeB o.belu.s o.regano.s; ba.uble.s ba.ronage.s Try it
Find pairs of words where one is the other with the last six letters reversed B=(6:*);AB;A~B
or
|B|=6;AB;A~B
... s.eagirt s.trigae; m.egasse m.essage; m.essage m.egasse; r.etinue r.eunite; r.eunite r.etinue; ... di.sserts di.stress; di.stress di.sserts; su.surrus su.surrus; sas.araras sas.sarara; ins.hallah ins.hallah; ... Try it
Find two strings, one of length at least four made from the letters of turquoise and the other of length at least two, that can be put together in either order to make words A=(4-:*/turquoise);B=(2-:*);AB;BA
or
A=(*/turquoise);|A|=4-;|B|=2-;AB;BA
ster.ne ne.ster; ques.tor tor.ques; rose.mary mary.rose; rout.seat seat.rout; ster.ling ling.ster; trous.es es.trous Try it
Find a jumble of lilac that can be extended into a word by adding one to five letters A=(/lilac);A.;A..;A...;A....;A..... ... calli.d calli.ng calli.ope calli.pers calli.grams; ... Try it
Find fourteen-letter words with their letters all different ABCDEFGHIJKLMN=..............;!=ABCDEFGHIJKLMN a.m.b.i.d.e.x.t.r.o.u.s.l.y; h.y.d.r.o.m.a.g.n.e.t.i.c.s; h.y.d.r.o.p.n.e.u.m.a.t.i.c; q.u.i.c.k.o.n.t.h.e.d.r.a.w; r.h.a.p.s.o.d.y.i.n.b.l.u.e; u.n.d.i.s.c.o.v.e.r.a.b.l.y Try it
Find eight-letter words with six-way single-letter misprints, avoiding repetitions ACB;ADB;AEB;AFB;AGB;AHB;|ACB|=8;|H|=1;!=C<D<E<F<G<H s.c.atters s.h.atters s.l.atters s.m.atters s.p.atters s.w.atters; ... ro.a.sters ro.d.sters ro.i.sters ro.o.sters ro.u.sters ro.y.sters; ... unsha.d.ed unsha.l.ed unsha.m.ed unsha.p.ed unsha.r.ed unsha.v.ed Try it
Find six-letter words with their letters strictly in alphabetical order ABCDEF=......;!=A<B<C<D<E<F a.b.h.o.r.s; a.l.m.o.s.t; b.e.g.i.n.s; b.e.g.i.r.t; b.i.j.o.u.x; b.i.o.p.s.y; c.h.i.k.o.r; c.h.i.m.p.s; c.h.i.n.o.s; c.h.i.n.t.z; d.e.h.o.r.t; d.e.l.o.r.s; g.h.o.s.t.y Try it

Qat syntax: ordinary patterns

The words and phrases in Qat’s dictionary are treated as if all accents, spaces and punctuation characters are removed, and all capitals converted to lower case.

Elements

  • A single character matches itself.
  • A full stop matches any single character.
  • A set of characters in square brackets, such as [klmn], matches any one of the specified letters. Ranges can be specified (so [k-n] is equivalent to [klmn] and [a-cx-z] is equivalent to [abcxyz]) and a set can be negated using an exclamation mark inside the opening square bracket: [!a] matches any letter except a.
  • The ‘commercial at’ symbol @ stands for any vowel and is equivalent to [aeiou].
  • The hash symbol # stands for any consonant, including y, and is equivalent to [!aeiou].
  • An asterisk matches any sequence of zero or more characters.
  • The ‘greater than’ symbol > stands for any word of two letters or more in the current dictionary. The ‘less than’ symbol < stands for the reverse of any word of two letters or more in the current dictionary.
  • A digit from 0 to 9 matches any letter, the same one throughout the pattern. Different digits match different letters.
  • A pair of round brackets enclosing a simple or compound pattern (see below) match that pattern.

Simple patterns

A simple pattern can consist of:

  • a sequence of elements, which must all be matched in the order given, or
  • a slash followed by a sequence of elements, which must all be matched but in any order, or
  • a first sequence of elements followed by a slash followed by a second sequence of elements: the first sequence must be matched in the order given, while matches can be drawn from the second sequence in any order. It is not necessary in this case for the whole of the second sequence to be matched.

Compound patterns

Compound patterns can be built from simple patterns using the tilde ~, exclamation mark !, ampersand & and vertical bar | characters. Using p and q to represent simple (or other compound) patterns, you can use these four operators to form the following compound patterns:

  • ~p which matches exactly those words matched by p reversed;
  • !p which matches exactly those words not matched by p;
  • p & q which matches exactly those words matched by both p and q; and
  • p | q which matches exactly those words matched by either p or q or both.

The three operators are applied in the order of precedence shown: for example,

p | !q & r

matches those words which match p, as well as those which match r but not q. Round brackets can be used to alter the order in which the operators are applied:

(p | !q) & r

matches those words which both match r and which either match p or fail to match q.

p | !(q & r)

matches those words which either match p or which fail to match both q and r.

Qualified patterns

A simple or compound pattern can be qualified by prepending a misprint specification. This can be a backquote ` character, which forces one of the single-character elements in the pattern (before the slash, if any) not to match, or a question mark followed by a backquote ?` which allows the option of one of the single-character elements not matching.

A pattern can be further qualified by prepending a length specification. This can be:

  • a number followed by a colon, which allows only matches of that length, or
  • a number followed by a hyphen and a colon, which allows only matches of at least that length, or
  • a hyphen followed by a number and a colon, which allows only matches of at most that length, or
  • a number followed by a hyphen, another number and a colon, which allows only matches in the specified range of lengths.

A misprint specification must precede a length specification if both are given.

Qat syntax: qategories

A qategory is a pattern that matches certain words, just like the conventional letter-matching patterns that Qat supports. However, a qategory matches words according to their meaning or associations rather than their constituent letters.

A qategory pattern consists of a qategory name (which must be specified exactly) followed by a colon and then a Qat pattern, all enclosed in curly brackets. Qategories can be combined with all the other features of Qat, including sub-patterns, equations and systems of equations. They cannot be used as ‘jumble fodder’ (i.e., after the slash in a pattern other than in a subpattern).

The currently-available qategories are as follows.

Qategory nameShorthand nameDatabase usedWords matched
mthes thes Moby Thesaurus IIWords occurring under the same headword as that specified
wikicat cat Wikipedia category listsWords appearing in article titles under categories containing the specified word
wndef def Princeton WordNetWords whose definition includes the specified word
wnhyper hyper Princeton WordNetWords given as a hypernym of the specified word
wnhypo hypo Princeton WordNetWords given as a hyponym of the specified word

Note that as in the ‘color’ example in the table above you may sometimes need to use American spellings in your patterns. The shorthand equivalents listed are liable to change in future. Qategories are not supported by the French-language version of Qat.

Each search involving a qategory is accompanied by a note explaining which databases were used in that search and provides a link to relevant licensing information.

Qat syntax: the equation solver

Qat’s equation solver is based around variables, represented by capital letters from A to Z.

Equations

An equation consists of a left-hand side (LHS) optionally followed by an equals sign = and a right-hand side (RHS).

The LHS consists of a sequence of variables and qualified patterns. Qat will try to assign strings of characters to the variables so that the whole LHS matches the RHS. If no RHS is given, the LHS must form a word.

Otherwise, the RHS can be:

  • a qualified pattern, which matches any word that fits that pattern, or
  • a qualified pattern enclosed by round brackets, which matches any sequence of letters that fits that pattern.

In the latter case the equation in question is not included in the table of results.

Length constraints

A length constraint consists of a sequence of variables bounded on both sides by vertical bar characters |, followed by an equals sign, followed by a length specification as described under ‘Qualified patterns’ above (without the colon). The effect of this constraint is to force the total length of the given variable sequence to fall within the specified range.

Difference constraints and breaking symmetry

A difference constraint consists of an exclamation mark followed by an equals sign, followed by a sequence of variables. All these variables are constrained to have values different from one another. If a ‘less than’ symbol appears between two of the variables, the variable to its left is constrained to be ‘less than’ the variable to its right; and likewise, mutatis mutandis, for the ‘greater than’ symbol. When deciding on the order of two strings of characters, Qat compares their lengths first and then looks at their alphabetical sequence. This is thus not the same as normal dictionary ordering.

Zero-length variables

Normally variables have to be at least one character long. It is possible to override this and allow a variable to have zero length (i.e., be the empty string), but you have to allow it explicitly with a length constraint of the form |A|=0- or similar.

Qat syntax: systems

A series of equations and constraints can be written side by side, separated by semi-colons, to form a system. A system is solved by finding values for the variables that satisfy all the equations and constraints simultaneously.

Dictionaries

There is a choice of dictionaries to search; more information about them is available here. The default, UKACD, is suitable for most UK crosswords and similar puzzles.

Time-outs

Although Qat uses various techniques internally to speed up its searches, it is nevertheless possible to set problems it finds quite difficult. This is particularly true when using the equation solver. There is therefore a time-out to prevent undue load on the server on which Qat runs. If you can’t find a way to express your problem so that Qat can solve it reasonably quickly, let me know using the e-mail address on the home page.


This page most recently updated Fri 5 Jan 10:25:35 GMT 2024

Qxw screen
Qxw is a free (GPL) crossword construction program. New! Release 20200708 for both Linux and Windows. Non-Roman alphabets, batch mode, multiplex lights, answer treatments, circular and hex grids, jumbled entries, lots more besides. More...

You can order my book, ‘Practical Signal Processing’, directly from CUP or via Hive, Amazon UK or Amazon US.
Practical Signal Processing front cover
“Probably the best book on signal processing ever written” — review at Goodreads.
Wydanie polskie.

If you find this site useful or diverting, please consider a donation to NASS (a UK registered charity), to KickAS (in the US), or to a similar body in your own country.

Copyright ©2004–2024.
All trademarks used are hereby acknowledged.