Если у вас есть указатель на совпадение, просто вычтите указатель на первый символ, и вы получите свой индекс.
var
Buf, Result: PChar;
Index: Integer;
Result := SearchBuf(Buf, ...);
if Assigned(Result) then
Index := Result - Buf
else
Index := -1; // not found
Я почти уверен, что арифметика указателей разрешена в Delphi 6. Если нет, то сначала приведите указатели к целочисленным типам:
Index := Cardinal(Result) - Cardinal(Buf);