Karsten Hilbert <Karsten(dot)Hilbert(at)gmx(dot)net> writes:
> What I don't understand is: Why does the following return a
> substring ?
> select substring ('junk $<allergy::test::99>$ junk' from '\$<[^<]+?::[^:]+?>\$');
There's a perfectly valid match in which [^<]+? matches allergy::test
and [^:]+? matches 99.
regards, tom lane