anchor.diff:      end;
   re_apply(C, More, [C|S], P) when integer(C) ->
       re_apply_more(More, S, P+1);
  -re_apply(RE, More, S, P) -> nomatch.
  +re_apply(_RE, _More, _S, _P) -> nomatch.
   
   %% re_apply_more([RegExp], String, Length) -> re_app_res().
   
  
positive.code: 
  %% in_char_class(Char, Class) -> bool().
  
  in_char_class(C, [{C1,C2}|Cc]) when C >= C1, C =< C2 -> true;
  in_char_class(C, [C|Cc]) -> true;
  in_char_class(C, [_|Cc]) -> in_char_class(C, Cc);
  in_char_class(C, []) -> false.
  
  %% re_apply_or(Match1, Match2) -> re_app_res().
  %%  If we want the best match then choose the longest match, else just
  %%  choose one by trying sequentially.
  
  re_apply_or({match,P1,S1,G1}, {match,P2,S2,G2}) when P1 >= P2 -> {match,P1,S1,G1};
  re_apply_or({match,P1,S1,G1}, {match,P2,S2,G2}) -> {match,P2,S2,G2};
  re_apply_or(nomatch, R2) -> R2;
  re_apply_or(R1, nomatch) -> R1.
  
  
negative.code:     case match(RE, S, 1, 0, -1) of
  	{Start,Len} when Len >= 0 ->
  	    {match,Start,Len};
  	{_Start,_Len} -> nomatch
      end.
  
  match(RE, S, St, Pos, L) ->
  