Search Postgresql Archives

Regex "embedded options" does only work on the whole pattern?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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)

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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux