In the last episode (Nov 08), Leandro Guimar~aes Faria Corcete DUTRA said: > Em Qua, 2006-11-08 às 19:16 +0100, Christian Hammers escreveu: > > > > On 2006-11-08 Leandro Guimar~aes Faria Corcete DUTRA wrote: > > > u.login REGEXP > > > '^wa[bhkl][_[.period.]-acegmnopqrsuvwxyz]{1,5}[14Lt][23890IJOQ].*' > > ... > > > But I get, among otherss, a string beginning with 'walt' > > > (several, in fact). > > > > Probably MySQL don't know about this "[.period.]" thing and just > > takes the "." in it as "any char", e.g. your "t" from "walt". > > I got that from cname.h, mentioned in the MySQL regexp documentation. > > > Try '^wa[bhkl][-_acegmnopqrsuvwxyz]{1,5}[14Lt][23890IJOQ].*', if > > there is a "-" at the beginning of a character class it is usually > > threaten literally as it makes no sense as "from..to" separator in > > those cases. > > Hm, but I do need to take into account the period.
"." within brackets is treated literally anyway, so there's no need to use "[.period.]". > Also, do you mean the - at the beginning will make all > following characters be treated literally? No, but it prevents - from being parsed as a range operator. "[.-a]" matches any character between ascii 46 and 97. Also, since mysql uses case-insensitive compares by default, it will match any lowercase character (since the uppercase characters between 65 and 90 are within your range). That's why the "t" in "walt" was matching. The right syntax for your original regex would probably look like: REGEXP BINARY '^wa[bhkl][-_.acegmnopqrsuvwxyz]{1,5}[14Lt][23890IJOQ].*' -- Dan Nelson [EMAIL PROTECTED] -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]