Hi, Could someone explain the following behaviour? SELECT regexp_replace(E'Hello & goodbye ',E'([&])','&#' || ascii(E'\\1') || E';\\1'); This returns: regexp_replace ------------------------ Hello \& goodbye (1 row) So it matched: SELECT chr(92); chr ----- \ (1 row) But notice that when I append the value it's supposed to have matched to the end of the replacement value, it shows it should be '&'. Just to confirm: SELECT ascii('&'); ascii ------- 38 (1 row) So I'd expect the output of the original statement to be: regexp_replace ------------------------ Hello && goodbye (1 row) What am I missing? -- Thom -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general