Добрый день
Пример текста
out vec3 color_vsh;
#if USE_CUBE_MAP
   out mat4 invNormalMatrix_vsh;
#endif
Требуется
- найти все строки с первым словом 
out и содержащие слово с суффиксом 
_vsh. Для каждой найденной
a) сохранить саму строку  
b) сохранить имя с суффиксом _vsh, для примера выше color_vsh и invNormalMatrix_vsh
с) если первое слово в предыдущей строке 
#if, то сохранить слово после него, для примера выше USE_CUBE_MAP
В данном случае исходный текст пишу я сам, но все-таки интересно что делать в общем случае. Тогда может быть и так
#if (USE_CUBE_MAP == 1)
   out vec3 color_vsh;
   out mat4 invNormalMatrix_vsh;
#endif
Ну это так, "на будущее"
Спасибо