anchor.diff:  
   		return false;
   	}
  +
  +	class TimeoutCharSequence
  +		implements CharSequence
  +	{
  +		private final CharSequence inner;
  +		private final int timeoutMillis;
  +		private final long timeoutTime;
  +
  +		public TimeoutCharSequence(CharSequence inner, int timeoutMillis)
  +		{
  +			super();
  +			this.inner = inner;
  +			this.timeoutMillis = timeoutMillis;
  +			timeoutTime = System.currentTimeMillis() + timeoutMillis;
  +		}
  +
  +		public char charAt(int index)
  +		{
  +			if (System.currentTimeMillis() > timeoutTime)
  +			{
  +				throw new RuntimeException(MessageFormat.format("Interrupted after {0}ms", timeoutMillis));
  +			}
  +			return inner.charAt(index);
  +		}
  +
  +		public int length()
  +		{
  +			return inner.length();
  +		}
  +
  +		public CharSequence subSequence(int start, int end)
  +		{
  +			return new TimeoutCharSequence(inner.subSequence(start, end), timeoutMillis);
  +		}
  +
  +		@Override
  +		public String toString()
  +		{
  +			return inner.toString();
  +		}
  +	}
   %>
   
   
  
positive.code: 		options.addAll(Arrays.asList(ArrOption));
  	}
  	String[] ArrInput = request.getParameterValues("input");
  
  	if (Strings.isNullOrEmpty(regex))
  	{
  
negative.code: 				pw.print(StringEscapeUtils.escapeHtml4(test));
  				pw.println("</td>");
  
  				Matcher m = null;
  				boolean matches, lookingAt;
  				String replaceFirst, replaceAll;
  
  				try
  				{
  					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)
  				{
  