Let's assume that we have a fsa as follows:
fsa = {0:{'a': 1, else: 2},1:{'b': 1, else: 2},2:{else: 2}}
This means: at state 0, if input is 'a', it goes to state 1, otherwise it goes to state 2; at state 1, if input is 'b', it goes to state 1, otherwise it goes to state 2; at state 2, for any input, it goes to state 2.
Assume, state 0 is a starting state, state 1 is an accepting state and state 2 is the failure state. Then this fsa can be translated as regex "ab*". In fact, there are a few algorithms that translate fsa to regex, such as Brzozowski algebraic method.
My question: can any fsa defined in the above form be translated into a regex? Is there any limitation?