anchor.diff: +%% This file is regexp.erl from Erlang/OTP with a few small modifications
  +%% by Magnus Ahltorp to allow the extraction of groups (added export: groups/2)
  +
   %% ``The contents of this file are subject to the Erlang Public License,
   %% Version 1.1, (the "License"); you may not use this file except in
   %% compliance with the License. You should have received a copy of the
  
positive.code: %	{St,S1} -> throw({error,{unterminated,"\""}})
  %    end;
  reg4([C|S]) when C /= $*, C /= $+, C /= $?, C /= $] -> {C,S};
  reg4([C|S]) -> throw({error,{illegal,[C]}});
  reg4([]) -> {epsilon,[]}.
  
  escape_char($n) -> $\n;				%\n = LF
  
negative.code: reg4([$(|S0]) ->
      case reg(S0) of
  	{R,[$)|S1]} -> {{group, R},S1};
  	{_R,_S} -> throw({error,{unterminated,"("}})
      end;
  reg4([$\\,O1,O2,O3|S]) when
    O1 >= $0, O1 =< $7, O2 >= $0, O2 =< $7, O3 >= $0, O3 =< $7 ->
  