Use BufferEnter and matchadd

autocmd + syntax seems pretty slow, so it is replaced with BufferEnter
event. Match can only match one group at a time unless using match2 and
match3, but 3 match groups is the limit. On the other hand, the matchadd
function can handle arbitrary number of match groups.
Use full command instead of cryptic shorthand