anchor.diff:  				pw.print(StringEscapeUtils.escapeHtml4(test));
   				pw.println("</td>");
   
  -				Matcher m = p.matcher(test);
  -
  -				pw.print("\t\t\t<td>");
  -				pw.print(StringEscapeUtils.escapeHtml4(booleanToString(m.matches(), loc)));
  -				pw.println("</td>");
  -
  -				m.reset();
  -
  -				pw.print("\t\t\t<td>");
  +				Matcher m = null;
  +				boolean matches, lookingAt;
  +				String replaceFirst, replaceAll;
  +
   				try
   				{
  -					pw.print(StringEscapeUtils.escapeHtml4(m.replaceFirst(replacement)));
  +					m = p.matcher(new TimeoutCharSequence(test, timeoutMillis));
  +					matches = m.matches();
  +					m.reset();
  +					replaceFirst = m.replaceFirst(replacement);
  +					m.reset();
  +					replaceAll = m.replaceAll(replacement);
  +					m.reset();
  +					lookingAt = m.lookingAt();
  +				}
  +				catch (Exception e)
  +				{
  +					pw.print("\t\t\t<td class=\"text-error\" colspan=\"6\">");
  +					pw.print("ERROR: ");
  +					pw.print(StringEscapeUtils.escapeHtml4(e.getMessage()));
  +					pw.println("</td>");
  +					pw.println("\t\t</tr>");
  +					continue;
  +				}
  +
  +				pw.print("\t\t\t<td>");
  +				pw.print(StringEscapeUtils.escapeHtml4(booleanToString(matches, loc)));
  +				pw.println("</td>");
  +
  +
  +				pw.print("\t\t\t<td>");
  +				try
  +				{
  +					pw.print(StringEscapeUtils.escapeHtml4(replaceFirst));
   				}
   				catch (Exception e)
   				{
  
positive.code: 
  		return false;
  	}
  %>
  
  
  
negative.code: <%@ page contentType="text/plain;charset=utf-8"
  		 import="java.io.*,
  		 		 java.text.*,
  				 java.util.*,
  				 java.util.regex.*,
  				 org.json.simple.*,
  