While you *can* use “regexp-substitute/global”, I don’t think it’s a
good fit here, because we may want to extend the string matching
features, which is difficult to do with “regexp-substitute/global”.
Instead, try to match regular expressions one by one with “string-match”
and then operate on the match structure it returns. If it returns #f
you can move on to the next expression. If none match you just return
the original string. If one matches you *rebuild* the string, but with
colours applied.