• If the string you want is always the next-to-last one and is always delimited by '/', this should do it:

    SELECT

    SUBSTRING(data, LEN(data) - CHARINDEX('/', REVERSE(data), CHARINDEX('/', REVERSE(data)) + 1) + 2,

    CHARINDEX('/', REVERSE(data), CHARINDEX('/', REVERSE(data)) + 1) - CHARINDEX('/', REVERSE(data)) - 1)

    FROM (

    SELECT 'dat1/dat2/dat3/dat4/1/2009' AS data UNION ALL

    SELECT 'dat1/dat2/dat34/dat4/2/2009' UNION ALL

    SELECT 'dat1/dat2/dat/sd34/dat4/3/2009' UNION ALL

    SELECT 'ssf/sdf/sdf/sf/sf/sf/4/2009' UNION ALL

    SELECT 'ssf/sdf/sdf/sf/sf/sf/10/2009' UNION ALL

    SELECT 'ssf/sdf/sdf/sf/sdf/sf/sf/44444444/2009' UNION ALL

    SELECT 'ssf/sdf/sdf/sf//sdf sdf sf/sf/111/2009' UNION ALL

    SELECT 'ssf/sdf/sdf/sf/sf/sd sf sdf /1798/2009'

    ) AS test_data

    Scott Pletcher, SQL Server MVP 2008-2010