Hi again, and thanks for sticking with this. > You haven't explained what you're trying to accomplish. Ok. CREATE TABLE test(x TEXT); INSERT INTO test VALUES ('abc'); SELECT REGEXP_REPLACE(x, '<something>', '<something_else>', 'g') FROM test; Expected result: ABC See fiddle here: https://dbfiddle.uk/Q2qXXwtF David Johnston suggested something along these lines: ========== > RegExp by itself cannot do this. You have to match all parts of the input into different capturing groups, then use lower() combined with format() to build a new string. Putting the capturing groups into an array is the most useful option. =========== But it's a bit above my pay grade to do this - I've tried, but no go! :-( It *_appears_* to me that the string's length would have to be hard coded under this strategy - but if that's the only way, then so be it. I'd just be interested to see a solution based on DJ's suggestion or any other code that would use REGEXP_REPLACE() to do what I want - preferably without hard coding, but if it's absolutely necessary. Thanks for any input. E.