I'm confused about how `StringUtils.regexEscape()` could help -- doesn't it do the opposite of what we need here?  Taking a regular string and making it safe to embed in a regexp without special meaning, vs. taking a regexp and making it safe to store in a plain string without special meaning.

But I still think splitting the top-level `|`s into an array of separate regexp literals, then looping over them to find a match, should work ok.