Почему бы просто не использовать подстроку?
DECLARE @ColA NVARCHAR(100) = 'a1.b2.c3.d4.e5(car.make.model, car.la, kg, av.vc.de)';
SELECT REVERSE(LEFT(RIGHT(REVERSE(LEFT(@ColA, CHARINDEX('(', @ColA)-1)), LEN(LEFT(@ColA, CHARINDEX('(', @ColA)-1))-CHARINDEX('.',REVERSE(LEFT(@ColA, CHARINDEX('(', @ColA)-1)))), CHARINDEX('.',RIGHT(REVERSE(LEFT(@ColA, CHARINDEX('(', @ColA)-1)), LEN(LEFT(@ColA, CHARINDEX('(', @ColA)-1))-CHARINDEX('.',REVERSE(LEFT(@ColA, CHARINDEX('(', @ColA)-1)))))-1))
Однако это последнее изменение НЕ обрабатывает случай, когда в строке нет .
или (
- не стесняйтесь расширять запроссоответственно