I think it's better to use `meta.tag.punctuation` instead, and change indexOf("meta.tag") == 0, to lastIndexOf("meta.tag", 0) == 0, it makes tag matcher significantly faster.
Also i am not sure which is better `begin` or `start`, i remember some modes use start now, they need to be changed if we decide on using `begin`.