Consider the following definition: We say that $O \subseteq \mathbb{R}$ is an open set if for every $x \in O$ there exists an open interval $(a,b)$ such that $x \in (a,b)$ and $(a,b) \subseteq O$.
Now one can prove that every open set in $\mathbb{R}$ is a union of open intervals. Suppose $O$ is open in $\mathbb{R}$, then for every $x$ in $O$ there is an open interval $(a(x),b(x))$ such that $x \in (a(x),b(x))$ and $(a(x),b(x)) \subseteq O$. But then $O \subseteq \bigcup_{x \in O} (a(x),b(x))$, which gives the equality.
My question is: does one need the axiom of choice for this kind of argument? I think that the notation "$(a(x),b(x))$" implicitly uses choice. This interval clearly doesn't have to be unique, so I don't see how one would formally write down the union of these intervals without using the axiom of choice. With AOC one simply gets a choice function $f$ and could call these intervals $f(x)$ based on $x$, but I don't see why this would be possible without it.
One could also try to get rid of the notation and simply infer that for every $x$ there exists an open interval $(a,b)$ such that the properties hold. But then I don't know how one would write down the union of the sets (again, I think one might need choice here).
Your proof requires choice as stated. However, it can be easily repaired, as follows:
If we let $U_x$ be the set of all open intervals containing $x$ contained in $O$, then it's not hard to show that $O$ is the union of all elements of $\bigcup_{x\in O}U_x$. This doesn't require choice.
(Another option is Arturo's idea. In my opinion it's less elegant, but the idea is to use the fact that $\Bbb R$ has a countable basis: every point in an open set $O$ contains an interval with rational endpoints contained in $O$. Thus we may pick the interval with the smallest denominator or some such.)
EDIT: The following may be simpler. Let $U$ equal the set of all open intervals contained in $O$. Clearly $\bigcup U\subseteq O$ (regardless of if $O$ is open or not). Since (because $O$ is open) every element $x\in O$ has at least one element of $U$ containing it, $x\in\bigcup U$. Thus, $O=\bigcup U$.