Regular expression - write language in MSO 
$$(ab^*a)^*$$ (a) Define this language in MSO
  (b) Decide if this language is definable in first order logic

(b) It seems to be simple. We know that we can't distinguish in $n$ rounds (wit $n$ quantifiers) two linear order with length $2^{n}+1$ and $2^{n}+2$. These two order can be encoded to two words:   $a^{2^{n}+1}$ and $2^{2^{n}+2}$. Then we use formula for words to distinguish these two words (becase exactly one of them belongs to langugage).   
(a)I know that it may be said:  


*

*first consistent block of $a$ has odd length

*last consistent block of $a$ has odd length   

*for each symbol $b$ there are exists two $a$ on the left and on the right

*if between two consistent block of $b$ there are exists some symbol $a$ then there is even number of $a$ in this block


However, writing this as formula MSO is hard for me. Can you help me ?

Hint. Guess a subset of the $\mathtt a$s that you pretend are $\mathtt c$s instead, and recognize $(\mathtt a \mathtt b^* \mathtt c)^*$.
