With the teaching assistants help, we were able to procure the following form for noncommutative expand, which works (when applied as a replacement): `noncomexpand := {x_^n_?IntegerQ /; \[Not] ConstQ[x] \[And] n > 0 :> CenterDot @@ ConstantArray[x, n]};` Hope this helps!