Thanks! That worked. How do you guys know this stuff? I've been scratching around for weeks (actually months, but always end up giving up and then coming back to it again) looking for ways to do this.
So I tested a bit further. I found that when I add a header row, then the count is wrong and I'm losing the first letter... have solved that by adding a value into the ROW function:
=IFERROR(REGEX.EXTRACT(UPPER(Table A::$A$1),"TH|CH|SH|\w",ROW(A1)),"")
It took me a while to figure this one out and also to realise that I had to deselect preserve row, but this function works now.
The only other glitch that I can find is when there is a space is between a "t" and an "h"... but just as I'm typing this I got the idea to also add "T H|" as a pair and this works! 😃
=IFERROR(REGEX.EXTRACT(UPPER(Table A::$A$1),"TH|CH|SH|T H| C H| S |\w",ROW(A1)),"")