Ah, right, `StringUtils.regexEscape()` won't work here... 

There are a couple minor downsides to splitting into multiple regexp literals:

1. This makes it harder to share the regex with Inline Color Editor. 
2. The code is already looping over a line to detect _which_ color the cursor is over. Now it will need to _additionally_ loop over each regexp.

This is basically trading off the complexity of maintaining an unwieldy regexp with the simplicity of using a single regexp. Since we only need to get the regexp right once, but may end up using it in multiple places, I have a slight preference for the simpler use (and huge regexp), but I don't feel too strongly about it.