Hi,

I can see postgresql claims to supports regular expression flags:
http://www.postgresql.org/docs/current/static/functions-matching.html#POSIX-EMBEDDED-OPTIONS-TABLE
which I suppose aims to be the equivalent of perl's *(?adluimsx-imsx:pattern)
<http://perldoc.perl.org/perlre.html#(%3fadlupimsx-imsx)>*
Extended Patterns <http://perldoc.perl.org/perlre.html#(%3fadlupimsx-imsx)>.

What I find don't makes sense to me is that those flags could be used to
switch on/off match feature locally as opposed to the whole regex (same as
though flags parameters of regex functions).

Perl supports that locality while postgres documentation says:

"*An ARE can begin with embedded options: a sequence (?xyz) (where xyz is
one or more alphabetic characters) specifies options affecting the rest of
the RE. These options override any previously determined options — in
particular, they can override the case-sensitivity behavior implied by a
regex operator, or the flags parameter to a regex function.*
"

Does that mean these "EMBEDDED OPTIONS" can be only defined at the
beginning of the pattern and therefore don't offer anything extra over *flags
*option?
By the looks of the table it seems postgres supports locality ("*rest of RE*"
in description for b, e, q option)
I tried to switch case insensitieness with "(?i)" in the middle of the
pattern but I'm getting:
********** Error **********
ERROR: invalid regular expression: quantifier operand invalid
SQL state: 2201B

When I do "(?i)" at the beginning of the pattern it works but then applies
to the whole pattern.

Any ideas?

Thank you,
Kind Regards
~Msciwoj

Reply via email to