Упс, криво примеры привел
В первом примере пробелов вначале нет
Во втором примере два пробела вначале
В третьем примере 4 пробела вначале
Долгими мурыжаньями у меня получилась регуляярка вида .*?(?=\s\d)
Но вот, если писать:
scanf("%[.*?(?=\s\d)]%d", str, &digit)
, то что-то он не то заносит...