If you have a maximum number length, then you can do this pretty directly as:
select (case when numlen > 0 then cast(left(col1, numlen) as int) else 0 end) as column1,
substring(col1, numlen+1, 100) as column2
from (select col1,
(case when isnumeric(left(col1, 10)) = 1 then 10
when isnumeric(left(col1, 9)) = 1 then 9
when isnumeric(left(col1, 8)) = 1 then 8
when isnumeric(left(col1, 7)) = 1 then 7
when isnumeric(left(col1, 6)) = 1 then 6
when isnumeric(left(col1, 5)) = 1 then 5
when isnumeric(left(col1, 4)) = 1 then 4
when isnumeric(left(col1, 3)) = 1 then 3
when isnumeric(left(col1, 2)) = 1 then 2
when isnumeric(left(col1, 1)) = 1 then 1
else 0
end) as Numlen
from t
) t