This is nothing more than a glorified hint, really, but maybe it will help?
You could use grammars to represent a binary string with an even number of zeros like this...
S = <1><R><1>
R = <1><0><1><0><R>|<1><0><1><0>
1 = "1"|"1"<1>|[tex]\lambda[/tex]
0 = "0"
Which is pretty easily translatable into a regular expression, I guess. Something like
$1*(1*01*0)+1*^
I guess I didn't note that valid binary strings can begin with a sequence of 0's as long as they meet the requirement that the number of 0s is a multiple of 2 [tex]\geq[/tex] 2. Since according to the diagram of the
DFA such a binary string is acceptable. Note, that the first part of the HW was to code the DFA- and that was easy. Second part is writing it's regular expression.
Didn't really look through your answer completely, but going to now give a crack at it using a grammar- we did grammars and parse trees way back earlier in the semester for programming languages, and see if I can get it. Thanks for the idea.
EDIT: The LaTeX BBCode tag is awesome!
EDIT2: Looking at your grammar, does the lambda indicate recursion? I don't think we learned that notation when learning grammars (didn't go too indepth into grammars), but I'm guessing it's related to recursion?