Почему бы не позаимствовать уроки из того, как vi или vim уже делают это? Я помню, что для какого-то собственного языка, основанного на тегах, мы хотели выделить подсветку синтаксиса в VI и VIM, то есть когда мы изменили несколько конфигурационных файлов .vi, где мы упоминали, все метаданные, например, какой цвет, какой тег какие теги возможны и т. д.
Более подробно о том, как vi, vim или любой текстовый редактор делают это, было бы более полезно!