anchor.diff:     if Name[Index] in ['0'..'9'] then begin
       if Index>1 then begin
        Value:=Value*10;
  -    end else begin  
  +    end else begin
        Value:=0;
       end;
       inc(Value,byte(ansichar(Name[Index]))-byte(ansichar('0')));
  
positive.code:               end else begin
                 raise EFLRE.Create('Syntax error');
                end;
                Value:=CountInternalCaptures;
                inc(CountInternalCaptures);
                if (CountCaptures+1)>length(CapturesToSubMatchesMap) then begin
                 SetLength(CapturesToSubMatchesMap,(CountCaptures+1)*2);
                end;
                CapturesToSubMatchesMap[CountCaptures]:=Value;
                inc(CountCaptures);
                NamedGroupStringIntegerPairHashMap.Add(Name,Value);
                if NamedGroupStringList.IndexOf(Name)<0 then begin
                 NamedGroupStringList.Add(Name);
                end else begin
                 raise EFLRE.Create('Duplicate named group');
                end;           
                NamedGroupStringIntegerPairHashMap.Add(IntToStr(Value),Value);
                if NamedGroupStringList.IndexOf(IntToStr(Value))<0 then begin
                 NamedGroupStringList.Add(IntToStr(Value));
                end else begin
                 raise EFLRE.Create('Duplicate named group');
                end;
                GroupIndexIntegerStack.Add(Value);
                GroupNameStringStack.Add(Name);
                try
                 result:=NewNode(ntPAREN,ParseDisjunction,nil,nil,Value);
                finally
                 GroupIndexIntegerStack.Delete(GroupIndexIntegerStack.Count-1);
                 GroupNameStringStack.Delete(GroupNameStringStack.Count-1);
                end;
               end
               else begin
                raise EFLRE.Create('Syntax error');
  
negative.code:         if rfNAMED in Flags then begin
           result:=ParseDisjunction;
          end else begin
           result:=NewNumberedGroup;
          end;
         end;
         if (SourcePosition<=SourceLength) and (Source[SourcePosition]=')') then begin
  