Although those are excellent answers I think the answer is even simpler.
$b^{m}b^{n} = b^{m+n}$ is not a "real number rule" but an "associative binary operation rule".
If we define/construct/invent any set of elements (these could be gumdrops or chess pieces for all we care) and create any operation between to elements ($a*b$ could be "melt the two gumdrops together an make a new one" or "always pick the second chess piece; always") so that:
--$a * b$ for any two elements of the set will result in $c$, also a member of the set and the same $a,b$ combined will always results in the same member $c$ (The term for this is $*$ is a "binary operation".
--If we evaluate $a*b*c*d$ it doesn't matter how we group them. $(a*(b*c))*d$ (where we first do $b*c= e$ and then we do $a*e = f$ and then we do $f*d = g$) will give the same result as $(a*b)*(c*d)$ (where we do $a*b$ and get $h$ and then we do $c*d$ and get $i$ and then we do $h*i$ and get, amazingly, $g$). Or more simply $(a*b)*c = a*(b*c)$. (such an operation is called "associative". An example of something that isn't associative is $(2^3)^2 \ne 2^{(3^2)}$.)
Then if we define as a matter of notation (it's just notation) that if $n\in \mathbb N$ than $a^n := a*a*a*....*a$ where a is operated $n$ times.
If we create such a system, (whether gumdrops, chess pieces, or numbers), then we will always have:
$b^mb^n = (b*.....*b)*(b*.....*b) = (b*....................*b) = b^{m+n}$.
Always.
So this is true for complex numbers. (Assuming we defined what $c*d$ means and that $c*(d*e) = (c*d)*e$).
===
Just to be perverse, let's do this with chess pieces. And define $a*b = b$. Then $(knight*pawn)*bishop = pawn*bishop = bishop$ which is equal to $knight*(pawn*bishop) = knight*bishop = bishop$.
Then $pawn^2*pawn = (pawn*pawn)*pawn=pawn*pawn= pawn; pawn*pawn^2 = pawn*(pawn*pawn) = pawn*pawn = pawn; pawn^3 = pawn*pawn*pawn = pawn*pawn = pawn$.
So $pawn^2pawn=pawn*pawn^2 = pawn^3$.
That was kind of boring.
=====
To go to Noah Schweber's excellent answer. If $i = (0,1)$ and $(a,b)*(c,d)= (ac - bd, ad + bc)$ is the definition of complex numbers then:
-- yes, it is binary. ($(a,b)*(c,d)= (ac - bd, ad + bc)$ results in a real value pair.)
-- yes it is associative. ($(a,b)*[(c,d)*(e,f)] = (a,b)*(ce-df,cf+de)=(a(ce-df)-b(cf+de), b(ce-df) + a(cf+de))=(ace-adf-bcf-bde,bce-bdf+acf+ade)$ while ($[(a,b)*(c,d)]*(e,f) = (ac - bd,bc+ad)*(e,f)=((ac-bd)e-(bc+ad)f,(bc+ad)e + f(bc+ad))=(ace-adf-bcf-bde,bce-bdf+acf+ade)$ so $(a,b)*[(c,d)*(e,f)] = [(a,b)*(c,d)]*(e,f)$.
Then
$(a,b)^3 = (a,b)(a,b)(a,b)=(a^2 - b^2,2ab)(a,b) = (a^3 - 3ab^2,3a^b-b^3)$
$(a,b)^2(a,b) = [(a,b)(a,b)](a,b)=(a^2 - b^2,2ab)(a,b) = (a^3 - 3ab^2,3a^b-b^3)$
$(a,b)(a,b)^2 = (a,b)(a^2 - b^2,2ab)=(a^3 - 3ab^2,3a^b-b^3)$
all equal.