Right now, a sample query I might have would be... SELECT * FROM ospd WHERE word REGEXP '^([a]?[p]?[e]?)$|^[p]?[a]?[e]?$|^[a ]?[e]?[p]?$|^[p]?[e]?[a]?$|^[e]?[p]?[a]?$|^[e]?[a]?[p]?$'; where basically I need to query every combination of a, p and e. This is a pain, but for only three letter is not so bad. As you can see, this could become unruly with larger numbers of letters. Each instance of a letter can only occur once. However, a letter may be duplicated and used once for each instance. Hence the statement steps through... it could also be something like... SELECT * FROM ospd WHERE word REGEXP '^[a]?[a]?[e]?$|^[a]?[e]?[a]?$||^[e]?[a]?[a]?$'; more easily written because one letter is used twice and can occure once for each instance. Please let me know if you have any ideas. Jesse jesse.williams@xepherys.net -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php