Here I've played around with different ways of highlighting x² without resorting to any (major) additional packages. There are ways of doing it more elegantly (using tikz, for example):

\documentclass{article}
\usepackage{grahpicx}% http://ctan.org/pkg/graphicx
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\begin{document}
\[
(x^2y')' + \lambda \underbrace{x^2}_{\text{\makebox[0pt]{Weight function}}}y = 0
\]
\[
(x^2y')' + \lambda \mathop{\rlap{\resizebox{1em}{\ht\strutbox}{$\underbrace{\phantom{x^2}}$}}x^2}_{\text{\makebox[0pt]{Weight function}}}y = 0
\]
\[
(x^2y')' + \lambda
\begin{array}[t]{@{\,}c@{\,}}
x^2 \\ \downarrow \\ \makebox[0pt]{\scriptsize Weight function}
\end{array}
y = 0
\]
\[
(x^2y')' + \lambda
\begin{array}[t]{@{}c@{}}
\setlength{\fboxsep}{1pt}
\fbox{$x^2$} \\ \downarrow \\ \makebox[0pt]{\scriptsize Weight function}
\end{array}
y = 0
\]
\[
(x^2y')' + \lambda \underset{\text{\makebox[0pt]{Weight function}}}{\underset{\downarrow}{x^2}} y = 0
\]
\end{document}
Option 1 is fairly basic. Option 2 sets a fake x² with a appropriate \underbrace, but resizes it to the width of 1em, before typesetting the rest of the expression as \mathop. Options 3 & 4 use an array to stack symbols. Option 5 uses a stacked-\underset.