I take it it is possible to redefine ^ (and _) to yield \textsuperscript
in text mode and work normally in math mode (is there a good reason why this is
not the default behaviour?), but I don't know how. This is what I tried:
\documentclass{article}
\begin{document}
\let\oldhat^
\def^{\ifmmode\expandafter\oldhat
\else\expandafter\textsuperscript\fi}
$x^n$
% indulgence^2
indulgence\textsuperscript{2}
\end{document}

^^notation (it's more relevant for XeTeX or LuaTeX, though). This also can conflict with somebabelmodules. – egreg Mar 21 '18 at 11:55\expandafteris redundant here. – wipet Mar 21 '18 at 12:05$: https://tex.stackexchange.com/questions/48632/underscores-in-words-text#comment934656_48632 and https://tex.stackexchange.com/q/70629/250119 . The reason that "you lose the ability of specifying a character with^^notation" is merely an implementation artifact resulted from that decision. (also explained in wipet's answer below.) – user202729 Nov 25 '23 at 02:45