Это должно работать:
"Filename upcase": {
"prefix": "_uc",
"body": [
"#ifndef ${TM_FILENAME/([^\\.]*)(\\.)*/${1:/upcase}${2:+_}/g}"
],
"description": "Filename uppercase and underscore"
},
([^\\.]*)(\\.)* group1: all characters before a period
group2: the following period
заменить заглавными буквами все group1: ${1:/upcase}
заменить все group2s '
на _
's
${2:+_}
является условной заменой , поэтому вы добавляете _
только в конце заглавной буквы group1 , если существует следующая группа2.
Глобальный флаг g
необходим в этом случае, чтобы перехватывать все вхождения group1group2, а не только первый.