Mario Splivalo wrote: > On Tue, 2006-09-05 at 10:21 -0400, Alvaro Herrera wrote: > > Mario Splivalo wrote: > > > On Tue, 2006-09-05 at 08:42 -0500, Aaron Bono wrote: > > > > On 9/5/06, Mario Splivalo <[EMAIL PROTECTED]> wrote: > > > > > > > > pulitzer2=# select 'stop works' ~ '^\s*(?:[\ > > > > +|-]|(?:[sS][tT][oO][pP]\b)).*$'; > > > > ?column? > > > > ---------- > > > > f > > > > (1 row) > > > > > > > > Here, postgres should return true, but it gives me false. > > > > > > > > > > > > \b is a back-space - is that what you are wanting there? If I remove > > > > it I get true. > > > > > > Actually, I'm not sure :) As I've mentioned, python/java/perl do as I > > > expected, postgres on the other hand doesn't. If \b was the backspace, > > > then I'd have trouble with '+mario test', and that one seems to be OK. > > > > No, because the \b is inside the "stop" arm of the |. You need to do > > *both*, double backslashes and get rid of \b (or at least understand > > what you actually mean with it ...) > > > > I know this might not be the right place for this question, but, how > come (or better: why?) is above regexp macthed ok (ok as in 'the way I > expected') when employed from java/perl/python?
In Perl at least, \b is a word boundary. In PostgreSQL (and probably Tcl as well) it's a backslash AFAICT. -- Alvaro Herrera http://www.CommandPrompt.com/ PostgreSQL Replication, Consulting, Custom Development, 24x7 support ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match