Due to text/scanner limitations, it's currently impossible to match imaginary numbers.
Probably should use go/scanner or extend text/scanner in this regard.
Tests that should pass after this is solved:
{`1 + 1E6i`, `(+ 1 $imag)`},
{`1 + 1E6i`, `(+ $int 1E6i)`},
{`1 + 1E6i`, `(+ $int $imag)`},