I've programmed in both classic ASP and ASP.NET, and I see different tags inside of the markup for server side code.
I've recently come across a good blog on MSDN that goes over the difference between:
<% %>- is for inline code (especially logic flow)
<%$ %>- is for evaluating expressions (like resource variables)
<%@ %>- is for Page directives, registering assemblies, importing namespaces, etc.
<%= %>- is short-hand for
<%# %>- is used for data binding expressions.
<%: %>- is short-hand for Response.Write(Server.HTMLEncode()) ASP.net 4.0+
<%#: %>- is used for data binding expressions and is automatically HTMLEncoded.
<%-- --%>- is for server-side comments