Output regulation refers to the class of control problems in which some outputs of the controlled system must be steered to some desired references, while maintaining closed-loop stability and in spite of the presence of unmeasured disturbances and model uncertainties. While for linear systems the problem has been elegantly solved in the 70s, output regulation for nonlinear systems is still a challenging research field, and 30 years of active research left open many fundamental problems. In particular, all the regulators proposed so far are limited to very specific classes of nonlinear systems and, even in those cases, they fail in extending in their full generality the celebrated properties of the linear regulator. The aim of this thesis i...