On Thu, Apr 25, 2013 at 03:40:51PM +0100, Thom Brown wrote: > 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. Yup, therein lies the rub :-) Thanks, Karsten -- GPG key ID E4071346 @ gpg-keyserver.de E167 67FD A291 2BEA 73BD 4537 78B9 A9F9 E407 1346 -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general