anchor.diff:      end else begin
        raise EFLRE.Create('Syntax error');
       end;
  -    if Done or assigned(result) or ((SourcePosition<=SourceLength) and (Source[SourcePosition] in ['|',')'])) then begin
  +    if Done or assigned(result) or ((SourcePosition<=SourceLength) and (Source[SourcePosition] in ['|',')',#0])) then begin
        break;
       end else begin
        SkipFreeSpacingWhiteSpace;
  
positive.code:     if SourcePosition<=SourceLength then begin
       case Source[SourcePosition] of
        '|':begin
         if (rfMULTIMATCH in Flags) and (((SourcePosition+1)<=SourceLength) and (Source[SourcePosition+1]='|')) then begin
          break;
         end else begin
          inc(SourcePosition);
         end;
        end;
        ')':begin
         break;
        end;
       end;
  
negative.code:     end else begin
       result:=Node;
      end;
      if (SourcePosition<=SourceLength) and (Source[SourcePosition]=#0) then begin
       inc(SourcePosition);
      end else begin
       break;
      end;
  