ClearAll[x, y, z, g, foo]; p1 = Conjugate[x_]*Conjugate[y_] :> Conjugate[x*y]; p2 = (x_)*Conjugate[x_] :> Abs[x]^2; p3 = Abs[(x_)*(y_)]^(n_.) :> Abs[x]^n*Abs[y]^n; p4 = (x_)*Conjugate[y_] + (y_)*Conjugate[x_] :> 2*(Re[x]*Re[y] + Im[x]*Im[y]); p5 = (x_) + Conjugate[x_] :> 2*Re[x]; allRules = {p1, p2, p3, p4, p5};
test it
expr = {{foo = x*Conjugate[y] + y*Conjugate[x]; foo, foo //. allRules}, {foo = x*Conjugate[y] + y*Conjugate[x] + z*Conjugate[g] + g*Conjugate[z]; foo, foo //. allRules}, {foo = x*Conjugate[x]; foo, foo //. allRules}, {foo = x*y*Conjugate[x*y]; foo, foo //. allRules}, {foo = x*y*z*Conjugate[x*y*z]; foo, foo //. allRules}, {foo = x + Conjugate[x]; foo, foo //. allRules}, {foo = x*y + Conjugate[x*y], foo; foo //. allRules}, {foo = x*y*z + Conjugate[x*y*z]; foo, foo //. allRules}, {foo = x*y + Conjugate[x]*Conjugate[y]; foo, foo //. allRules}, {foo = x*y*z*g + Conjugate[x]*Conjugate[y]*Conjugate[z]*Conjugate[g]; foo, foo //. allRules}}; Grid[expr, Frame -> All, Spacings -> {0.5, 1}, Alignment -> Left]