• Maybe I missed the boat, but is there a reason you aren't using a simple charindex?

    select charindex(' ', field) returns where the first space is located, you can use that to start the next search through the string

    select charindex(' ', field) -- FirstSpace and number of chars.

    , charindex(' ', field, charindex(' ', field)+1) -- SecondSpace

    , charindex(' ', field, charindex(' ', field)+1) - charindex(' ', field) -- Nbr of chars between first and second space

    and so on... It can get pretty ugly, but if it is just ext + phone + ext then you should only have 3 spaces in your input.