If you don't like the stock syntax rules that come in, you are free to override them with your own. However, at some level, these rules will have to be defined via Viml.
:help syntax will tell you all of the rules and conventions for how to do this, but you may wish to copy the existing syntax and modify it. If you run
:scriptnames, you can see a list of all files currently loaded and find the path to the syntax file for the language you're interested in.
If you truly object to using VimL to define syntax, you could always create a python wrapper that has the interface you desire and calls
:syn match/region/keyword under the hood. However, I'm hard-pressed to think of a way to simplify things enough to warrant the additional level of abstraction.
I find vim's syntax to be more powerful and clean than any python code I've seen that tries to accomplish the same. For instance, to define a string as something surrounded in double quotes that can contain
\", you would say something like:
syn region String start=/"/ end=/"/ skip=/\\\\\|\\"/
Having to backslash-escape \ and | is a little unfortunate I suppose, but
skip is just one of may features that make defining a syntax element easier than trying to cram it all in one regex.
A note on "make a string red"-- you have to do this in two steps in Vim:
- Say everything in this regex is called a string (typically in a syntax file)
- Say that a string is red (typically in a colorscheme file)
This is intentionally done so that you can use any colorscheme with any syntax.