re = /^([\w\W]+?)((?:\w+\.){0,}([^A-Za-zА-Яа-я_])h([^A-Za-zА-Яа-я_]))(?:\sAS \[[A-Za-zА-Яа-я_]+\]){0,}/
str = 'SELECT `L`,
`r_e`,
T1.[r_w],
`Soi`,
`Sor`,
`Swc`,
`i_k_2`,
`mu_w`,
`mu_o`, `Газоконденсатный_фактор` AS [Газоконденсатный_фактор], `Газосодержание_нефти` AS [Газосодержание_нефти],
`Геологические_запасы_конденсата`,
`Геологические_запасы_нефти`,
`Геологические_запасы_свободного_газа`,
`D`,
`Извлекаемые_запасы_конденсата`,
`Извлекаемые_запасы_нефти_новых_скважин`,
`Извлекаемые_запасы_нефти`,
`КИН`,
`Количество_буровых`,
`Количество_скважин`,
`FracCount`,
`Fw`,
`F`,
`Коэффициент_компенсации`,
`phi`,
`Ef`,
`Объемный_коэффициент_воды`,
`Bo`,
`Период_строительства_скважины`,
`Плотность_воды`,
`ro_o`,
`Плотность_сетки_скважин`,
`Площадь_объекта`,
`k_h`,
`k_f`,
T1.`Pwf`,
`Psat`,
`c_w`,
`c_o`,
`c_r`,
`S`,
`Соотношение__доб_нагн__0___беск`,
`Стартовая_приемистость`,
`Стартовый_дебит_жидкости`,
`Стартовый_дебит_нефти`,
`m1`,
`m2`,
`Стоимость_скв__ГС+ГРП`,
`Стоимость_скв__ГС+МГРП`,
`Стоимость_скв__ГС`,
`Стоимость_скв__ННС+ГРП`,
`Стоимость`,
`Pi`,
`t_p`,
`Тип_заканчивания_доб_скв`,
`Тип_заканчивания_нагн__скв`,
`wf`,
T1.[h] FROM [DeleteMe5$A1:DM253]
'
subst = '$1 Max($2) AS [Year]'
result = str.gsub(re, subst)
# Print the result of the substitution
puts result
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Ruby, please visit: http://ruby-doc.org/core-2.2.0/Regexp.html