Per il punto 1 puoi usare i metodi di String (li trovi tranquillamente online se cerchi su google String javadoc) per vedere quelli che fanno al caso tuo. Sicuramente dovrai usare dei metodi che eliminano un carattere in una stringa, e poi verificare la presenza di caratteri come '<', '>', etc.
Ti consiglio di implementare un metodo che restituisce un valore boolean e che controlla se la stringa in ingresso è effettivamente un tag o meno (ovviamente anche questo metodo deve poter lanciare MTExc). Per il punto 2, chiami il metodo di cui sopra (attenzione però che il metodo deve essere statico!), e in base al valore di ritorno fai quello che devi.
Per tagStack il consiglio è quello di creare una classe che al suo interno abbia una List (o un altro tipo di collezione che ti torna comoda) e che tramite i metodi push e pop gestisca le operazione di inserimento e di estrazione in testa alla lista.