Expresión de RegEx que capturará todo entre dos caracteres, incluidos bloques multilínea

Quiero capturar todo el texto y bloques de texto entre <% y%>.

Por ejemplo:

<html>
<head>
<title>Title Here</title>
</head>
<body>
<% include("/path/to/include") %>
<h1>Test Template</h1>
<p>Variable: <% print(second_var) %></p>
<%

variable = value;

foreach(params here)
{
    code here
}

%>
<p><a href="/" title="Home">Home</a></p>
</body>
</html>

Yo he tratado\<\%(.*)\%\> pero eso capturará todo, incluyendo<h1>Test Template</h1> bloque también.

Respuestas a la pregunta(3)

Su respuesta a la pregunta