>I tried this and it worked!
>
>select substr(notes,at("TO CREATE",upper(NOTES)),9) as "NoteString" ;
> from badmemo where upper(notes) like "TO CREATE"
>
>What I did was create a table with a memo field called NOTES. I put in some text that had TO CREATE in various upper/lower case. The select statement created a cursor with a memo field called "NoteString" with all the various ways I typed in "TO CREATE". You could then scan the cursor and issue a replace statement against the original table for each case variation in the cursor and still maintain the case of the remaining text.
>
>Where it fails: it only picks up the first instance of the string in the memo field, so you may not get all case variations. Possible workaround is to replace the selected text with some dummy text such as "XXXXXXXXXX" (a string not likely to ever appear anywhere in the memo field). Issue the select again which would pick up the 2nd instance. Keep up this iteration until the select returns 0 rows. The final STRTRAN would be to replace all the "XXXXXXXXXX" with the real replacement string.
Thanks, I was thinking of something similar about a temporary replacement but Edward gave me the ATC() function which can be used in a loop.