Rogar...I don't think your second formula quite works.
StringVar s := Left(Trim({YourString}),Instr(Trim({YourString})," "

);
Left(s, Instr(s," "
You are grabbing only the first word for s...not the second one
I might try this
WhilePrintingRecords;
numbervar pos1 := 0;
numbervar pos2 := length(trim({Table.YourString})) + 1;
pos1 := Instr(trim({Table.YourString})," "

;
//there is no garuantee that there is a third word
//though from the example given that doesn't seem to be a
//problem and the "IF" test can be removed
if Instr(trim({Table.YourString}),pos1," "

<> 0 then
pos2 := Instr(trim({Table.YourString}),pos1," "

;
mid(trim({Table.YourString}),pos1 + 1,pos2 - 1);
Jim Broadbent