Se lo scrivi nel primo modo devi poi passare dalla regex all'automa, il che richiede sostanzialmente di applicare 3/4 regolette di scomposizione (sostituisci | con due archi in parallelo, * con un cappio e la congiunzione con due archi in serie (con in mezzo un vertice)). Il problema è che tali regole sono più facili da applicare ad occhio che non con del codice, e comunque non è detto che ti venga un automa in forma minima.
La seconda rappresentazione invece rende banale la creazione dell'automa, perché di fatto la fai tu scrivendo il file. Per rappresentare il grafo sul file ci sono vari modi. Ad esempio, potresti indicare prima tutti i vertici, in modo da allocarti un vettore di dimensione opportuna, e poi tutti gli archi. Nell'elenco dei vertici potresti già inficare con dei flag quelli che sono gli stati iniziali e finali.