### Case #1 Observe: "anything" /. Plus[___] -> "match" > "match" This is because `Plus[___]` evaluates to `___`, and `___` matches anything. You can use `HoldPattern`: Sqrt[Plus[x, y]] /. HoldPattern[Plus[___]] -> u > Sqrt[u] ### Case #2 You must understand that pattern matching is done on something close to the `FullForm` of an expression, rather than the `StandardForm` output you normally see. Let's look at your second problematic expression: a/Sqrt[x] // FullForm // HoldForm > Times[a,Power[x,Rational[-1,2]]] As you can see, `Sqrt` is nowhere to be found. If you need to match for things that *appear* as Radicals in StandardForm you can use the methods described here: http://stackoverflow.com/q/5682963/618728