• You can use Alan Burstein's PatExclude8K[/url]

    WITH cteData AS (

    SELECT x.String

    FROM (VALUES('XDX114A77400'),

    ('1123AB00171')

    ) x (String)

    )

    SELECT d.String

    , Letters = L.NewString

    , Numbers = N.NewString

    FROM cteData d

    CROSS APPLY dbo.PatExclude8K(d.String,'%[^A-Za-z]%') L

    CROSS APPLY dbo.PatExclude8K(d.String,'%[^0-9]%') N

    ORDER BY d.String;