Minimización de la expresión regular

Soy bastante nuevo en el mundo de la programación. Estoy tratando de crear una expresión regular común que coincida solo con la lista de cadenas dadas, nada más que eso.

Por ejemplo, dada la lista a continuación

List = ['starguide,'snoreguide','snoraguide','smarguides']

Debería crear una expresión regular como esta:s(((tar|nor(e|a))(guide))|marguides)

I implementé un trie. Solo pude conseguirs(marguides|nor(aguide|eguide)|targuide)

Quiero que mi expresión regular se acorte (sufijos comunes unidos). ¿Hay alguna manera mejor de acortar la expresión regular que recibo del trie?

Respuestas a la pregunta(1)

Su respuesta a la pregunta