Ok mi scuso molto... non ho inserito il codice perché é abbasta inutile rispetto al problema... cmq sono riuscito a tirare fuori questo.

codice:
%option noyywrap

%{

#include <stdio.h>
#include <string.h>
int numst = 0, numtr = 0;

%}

ST (st)
TR (tr)
DIGIT [0-9]

%%

({ST}|{TR}) {if(strcmp(yytext,"st")==0)
                   numst++;
             if(strcmp(yytext,"tr")==0)
                   numtr++;
             } 

\n {return 0;}

%%

int main(){
  yylex();
  printf("st: %d\n",numst);
  printf("tr: %d\n",numtr); 
  getchar();
  return 1;
}
Non fa altro che contare il numero di occorrenze di "st" e di "tr"... il mio problema é aggiungere le rispettive "e" ed "a" alla fine della stringa originale e soprattutto il problema é aggiungere nell'esatto ordine.