$01$ means the string 01
and nothing else: exactly two symbols long, with a 0
and then a 1
.
$(01)^\ast$ means zero or more repetitions of 01
. So it could be any of $\epsilon$ (the empty string), 01
, 0101
, 010101
, and so on.
In a theory-of-computation course, the $A+B$ notation almost certainly means the union of the two expressions $A$ and $B$. That is, any string that is in the set $A$ or that is in the set $B$. It almost certainly does not mean that $A$ is repeated one or more times, unless it is superscripted, like this: $A^+B$.
Supposing that the $+$ means union,
$(1+(01)^\ast)$ means either the string 1
or something represented by
$(01)^\ast$ as in the previous paragraph. So one of $\epsilon$ (the empty string), 1
, 01
, 0101
, 010101
, and so on. This is just like the previous paragraph, except that it also includes 1
.
$(1+ (01)^\ast)10$ means something of the form $(1+ (01)^\ast)$ as in the previous parapgraph, followed by 10
. So one of 10
, 110
, 0110
, 010110
, 01010110
, and so on. Just like the previous paragraph, but with 10
on the end.
The book Higher-Order Perl, available free online, contains complete Perl code for a program that takes a regular expression and that generates all the strings represented by that expression, in order. If you like Perl, it might be worth a look. If not you'll probably get bogged down in the details of the code.
I don't understand why the textbook for your theory of computation course doesn't explain this. Did you look in the index?