Wenn es nicht so auf Geschwindigkeit ankommt, könntest Du die Position aller Suchtexte ermitteln und mit math.MinIntValue die kleinste rauspicken.
Und natürlich die 0 (nichts gefunden) ignorieren.
Delphi-Quellcode:
x := 0;
for i := 0 to High(Suchworte) do begin
j := Pos(Suchworte[i], Text);
if (j > 0) and ((j < x) or (x = 0)) then
x := j;
end;
x = Position des ersten Fundes oder 0 für nicht gefunden
für SelStart dann noch 1 abziehen