Its a bit complex as its really the ':' that determines an alternate syntax block and the ':' may appear for other purposes. I'll accept a good implementation but won't work on this myself.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Its a bit complex as its really the ':' that determines an alternate syntax block and the ':' may appear for other purposes. I'll accept a good implementation but won't work on this myself.