It is easier to crack the logic behind certain patterns involving letters and/or special characters if we can associate them with numbers. In this case, by setting A = 1, B = 2, C = 3, ..., Z = 26, let us see what the first letter in each term ties up to:
Looking at the difference of these numbers, the following logic is almost obvious:
Also, the special characters in each term repeat in a cyclic fashion, starting from "!" and ending at "$".
Therefore, the next term in the sequence would be 'K#'.