The .\{-} match for the remainder is too lax; it can pick up intermediate tags where the current tag name is a subset of, e.g. the GSP <g:else> and <g:elseif> tags.
If there's content after the tag name, it must be separated by whitespace.
Also, as no attributes are allowed on the end tag, the pattern can be restricted to only optional whitespace.
The
.\{-}
match for the remainder is too lax; it can pick up intermediate tags where the current tag name is a subset of, e.g. the GSP<g:else>
and<g:elseif>
tags. If there's content after the tag name, it must be separated by whitespace. Also, as no attributes are allowed on the end tag, the pattern can be restricted to only optional whitespace.