Первая проблема заключается в том, что вам нужно экранировать \
в вашей строке:
st <- "MICROSOFT_SQL_SERVER.DATABASE\\INSTANCE.DATABASE_NAME."
Что касается основной проблемы, она вернет нужный бит из строки, которую вы дали:
> sub("\\.$", "", sub("[A-Za-z0-9\\._]*\\\\[A-Za-z]*\\.", "", st))
[1] "DATABASE_NAME"
Но более простым решением было бы разделить на \\.
и выбрать последний фрагмент:
> strsplit(st, "\\.")[[1]][3]
[1] "DATABASE_NAME"
или немного более автоматизированный
> sst <- strsplit(st, "\\.")[[1]]
> tail(sst, 1)
[1] "DATABASE_NAME"