POSIX RE starting with a ( - Mailing list pgsql-general

From Nick Barr
Subject POSIX RE starting with a (
Date
Msg-id 411A2196.4050404@chuckie.co.uk
Whole thread Raw
Responses Re: POSIX RE starting with a (
Re: POSIX RE starting with a (
Re: POSIX RE starting with a (
List pgsql-general
Hi,

Just noticed something funny with the POSIX Regular expressions and
wondered if it is a bug, or whether I am doing something wrong. I am
using the POSIX RE in a function that is used in several places so would
have to put some nasty if statement in there for this side case if there
is not work around.

======================================================================
intranet=# select track_id, track_name from ms_track where track_name
like '(%';
  track_id |           track_name
----------+---------------------------------
      1294 | (I Can''t Get No) Satisfaction
      1340 | (Hidden Track)
      1503 | (Nice Dream)
      1942 | (I) Get Lost
(4 rows)

intranet=# select track_name from ms_track where track_name ~ '^\(';
ERROR:  invalid regular expression: parentheses () not balanced
intranet=# select track_name from ms_track where track_name ~ '^(';
ERROR:  invalid regular expression: parentheses () not balanced
intranet=# select track_name from ms_track where track_name ~ '^\(';
ERROR:  invalid regular expression: parentheses () not balanced
======================================================================

Now I have tried a similar query using the PHP POSIX Regular Expressions
and it accepts the sequence '^\(' and matches correctly. Is this a
"feature" of PG that cannot be worked around easily?

Any thoughts?

Thanks

Nick

P.S. Thanks a lot guys for all the hard work on 8.0, looks good to me.
Lots of really useful features, PITR, Win32, Nested transactions. Good
work guys!


pgsql-general by date:

Previous
From: Elie Nacache
Date:
Subject: Re: How to write soundex query in postgresql??
Next
From: Doug McNaught
Date:
Subject: Re: the behaviour of timestamp on postgres.