Mathematica's unified symbolic architecture allows immediate generalization of part-oriented list operations to arbitrary expressions—supporting operations both on individual parts, and on collections of parts at specified levels in expression trees.
ReplacePart — replace numbered parts of an expression
Position — find the positions of any pattern in an expression
Cases — find cases of any pattern in an expression
MapAt — apply a function at particular positions in an expression
Heads — option for specifying whether to include heads