Some digits, then some non-digits, then some digits and no non-digits after that?
WHERE Locations LIKE '[0-9]%[^0-9]%[0-9]'
You could then find the right-hand-most non-digit with PatIndex and Reverse
SELECT CASE WHEN Locations LIKE '[0-9]%[^0-9]%[0-9]'
THEN LEFT(Locations, LEN(Locations)-(PatIndex('%[^0-9]%',
REVERSE(Locations)) - 1))
ELSE NULL
END AS [Result]