Regex: Any pair of zeros is before any pair of ones
You are correct: the regexp you quote does not match the string $10011$ and that string has the property that every pair of adjacent&nbsp;$0$s occurs before any pair of adjacent&nbsp;$1$s.  But it does match the string $001100$, which fails to have the property!

Your proposed solution matches $11001$ so is also incorrect (the first bracket matches&nbsp;$1$, the second matches&nbsp;$10$, the third matches&nbsp;$01$ and the fourth matches&nbsp;$\epsilon$.

A regexp that does match the required language is
$$0^*(100^*)^*(11^*0)^*1^*\,.$$
It works as follows.


$0^*(100^*)^*$ matches the empty string and any non-empty string that doesn't contain&nbsp;$11$ and that ends with&nbsp;$0$. The string can't contain&nbsp;$11$ because there must be at least one&nbsp;$0$ between every two&nbsp;$1$s.
$(11^*0)^*1^*$ matches every string that begins with&nbsp;$1$ and does not contain&nbsp;$00$, since there must be at least one&nbsp;$1$ between any two&nbsp;$0$s.
Now put the two halves together. If a string has the property that all occurrences of&nbsp;$00$ are before the first&nbsp;$11$, then the section of the string before the first $11$ must either be empty or end in&nbsp;$0$, so it matches the first part of the regexp. The rest of the string contains no occurrences of&nbsp;$00$ so it matches the second part of the regexp.


Note that there are shorter regexps that do the same thing: Yuval Filmus gives $(0+10)^*(1+10)^*$ in a comment to the question. That's a tidier version of the same idea.

And, yes, $(0^*1^*)^* \equiv (0+1)^*$ matches every possible binary string.