On Sun, Jun 14, 2009 at 08:15:55AM +0200, Pavel Stehule wrote: > postgres=# select '10' ~ '[0..9]+$'; > ?column? > ---------- > t > (1 row)
regexp '[0..9]+$' tests is given strings containst at the end substring containing only characters "0", "9" and ".". and yes, it does - the last character is 0, so it matches. > postgres=# select '10' ~ '^[0..9]+$'; > ?column? > ---------- > f > (1 row) this regexp checks if whole string is built only with characters "0", "9", and ".". and it is not - the first character is "1" which is not the character list you provided. basically ".." has no special meaning in regexps, especially within [] - i.e. it is just a dot. Best regards, depesz -- Linkedin: http://www.linkedin.com/in/depesz / blog: http://www.depesz.com/ jid/gtalk: dep...@depesz.com / aim:depeszhdl / skype:depesz_hdl / gg:6749007 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers