On 25 April 2013 15:32, Tom Lane <tgl@xxxxxxxxxxxxx> wrote: > Karsten Hilbert <Karsten.Hilbert@xxxxxxx> 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. Yeah, I think there may be an assumption that a lazy quantifier will stop short and cause the remainder to fail to match permanently, but it will backtrack, forcing the lazy quantifier to expand until it can match the expression. -- Thom -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general