anchor.diff:  function TReader.read: char;
   begin
     inc(FCursor);
  -  if FCursor > FValue.length then
  +  if FCursor > Length(FValue) then
       result := #0
     else
       result := FValue[FCursor];
  
positive.code:   pos := start;
    temp := TStringBuilder.Create();
    try
      while (pos < s.length) do
      begin
        mt := getToken(s, pos);
        if (token <> mtNONE) and ((mt = token) or ((token = mtEM_STAR) and (mt = mtSTRONG_STAR)) or ((token = mtEM_UNDERSCORE) and (mt = mtSTRONG_UNDERSCORE))) then
  
negative.code:   c: char;
  begin
    count := 0;
    for i := 0 to Length(value) - 1 do
    begin
      c := value[1 + i];
      if (c = ' ') and (allowSpaces) then
  