@rorya great point.
Xpath length at 1024 character
if you need to remove 30+ substrings then use nested FilterXML
where F2:F39 are lower case substrings
=IFERROR(TEXTJOIN(" ",,FILTERXML("<x><m>"&SUBSTITUTE(TEXTJOIN(" ",,FILTERXML("<x><m>"&SUBSTITUTE(A2," ","</m><m>")&"</m></x>",
"//m"&"[not("&TEXTJOIN("or ",,IF($F$2:$F$20="","","contains(translate(.,'"&UPPER($F$2:$F$20)&"','"&$F$2:$F$20&"'),'"&$F$2:$F$20&"')"))&")]"))," ","</m><m>")&"</m></x>",
"//m"&"[not("&TEXTJOIN("or ",,IF($F$21:$F$39="","","contains(translate(.,'"&UPPER($F$21:$F$39)&"','"&$F$21:$F$39&"'),'"&$F$21:$F$39&"')"))&")]")),"")
Bookmarks