Non uso un template engine già pronto perchè ne ho già uno mio e vorrei aggiungergli la gestione dell'IF.
Riguardo il tuo suggerimento devo dire che è ottimo. Avendo gli offset dei vari tag del costrutto posso analizzare più semplicemete il tutto a pezzi.
Controllo l'IF, se mi va bene prendo il suo codice altrimenti passo all'offset successivo; se è un else lo accetto e basta mentre se è un elseif ripeto la procedura.
Per l'uso della callback che idea hai in mente precisamente?
P.S. invece per come sistemare la regexp suggerimenti?