pattern = regex.compile(
    '%.*(*SKIP)(*FAIL)|\\\\section{.*}(*SKIP)(*FAIL)|(Astah|UML|use case)')
s = """
    \\section{Astah}
    Astah is a UML diagramming tool... bla bla...
    % use case:
    A use case is a...
"""
print(regex.sub(pattern, '\\\\gloss{\\1}', s))
Отрицательное регулярное выражение перед определенным термином