Hi
Interestingly enough I tried a similar test on 2012 for the originals and got elapsed times that so close as to be the same. It may have been the strings I was using though.
Bring on a PATREPLACE function 😀
ChrisM's pattern splitter from Dwain's article [/url]may also be able to be used here
select cleanedstring
FROM #strings s
CROSS APPLY (
SELECT Item + '' FROM PatternSplitCM(string,'[^0-9]') WHERE MATCHED = 0 FOR XML PATH ('')
) x (cleanedstring)