anchor.diff:   {$ELSE}
    XIgnoredChars = [' ', #9, #$d, #$a];
    {$ENDIF}
  +
  +function AlignToPtr(const p: Pointer): Pointer;
  +begin
  +{$IFDEF FPC_REQUIRES_PROPER_ALIGNMENT}
  + Result := Align(p, SizeOf(Pointer));
  +{$ELSE}
  + Result := p;
  +{$ENDIF}
  +end;
  +
  +function AlignToInt(const p: Pointer): Pointer;
  +begin
  +{$IFDEF FPC_REQUIRES_PROPER_ALIGNMENT}
  + Result := Align(p, SizeOf(integer));
  +{$ELSE}
  + Result := p;
  +{$ENDIF}
  +end;
   
   {=============================================================}
   {=================== WideString functions ====================}
  
positive.code: {$ENDIF}
  {$DEFINE ComplexBraces} // support braces in complex cases
  {$IFNDEF UniCode} // the option applicable only for non-UniCode mode
   {$DEFINE UseSetOfChar} // Significant optimization by using set of char
  {$ENDIF}
  {$IFDEF UseSetOfChar}
   {$DEFINE UseFirstCharSet} // Fast skip between matches for r.e. that starts with determined set of chars
  
negative.code:     else TheOp := BRACES;
     InsertOperator (TheOp, Result, REOpSz + RENextOffSz + REBracesArgSz * 2);
     if regcode <> @regdummy then begin
       PREBracesArg (AlignToInt(Result + REOpSz + RENextOffSz))^ := ABracesMin;
       PREBracesArg (AlignToInt(Result + REOpSz + RENextOffSz + REBracesArgSz))^ := ABracesMax;
      end;
    end;
  
  