I hope folks don't mind, but I'd like to revisit this question. Even in 11.3, Mathematica's approach to the symbolic integration is not optimal, as it gives an unnecessarily messy result. The integrand is real-valued for $r \ge \sqrt[3]{7}$ , so Mathematica's output for the antiderivative from 2 to $\infty$ should be exactly so as well:
integrand = ((r^3 - 7)^(2/3)*(1 - (r^3 - 7)^(2/3)/r^2))/r^3 //FullSimplify;
Plot[integrand, {r, 0, 20}, PlotRange -> {{0, 20}, {0, .12}}]
Instead, as can be seen from the prior answers, Mathematica adds a complex integration constant that cancels out when the definite integral is evaluated numerically, leaving an imaginary term that is indistinguishable from zero, within the numerical precision of the operation; but that imaginary term shouldn't be there at all. A significantly cleaner result can be obtained with the Rubi integration package for Mathematica (http://www.apmaths.uwo.ca/~arich/):
rubi = Int[integrand, r]
And thus (Rubi doesn't do definite integrals, so the upper and lower bounds must be determined individually):
rubiU = Limit[rubi, r -> Infinity]
rubiL = rubi /. r -> 2
rubiU - rubiL
% // N
Essentially, compared to the Rubi result, Mathematica is adding an integration constant of $-0.3023-2.0944 i$:
mma = Integrate[integrand, r];
mma /. r -> 2.
rubi /. r -> 2.
%% - %
While the integration constant can have any constant value, this doesn't seem to be good program behavior; I don't see how it's any different from evaluating $\int x^2 \, dx$ and getting, say, $\frac{x^3}{3}-27+\frac{14 i}{7}$ rather than just $\frac{x^3}{3}$.
Limit
or perhapsSeries
. $\endgroup$In[55]:= Integrate[((r^3 - 7)^(2/3)*(1 - (r^3 - 7)^(2/3)/r^2))/ r^3, {r, 2, Infinity}] Out[55]= 23/64 + \[Pi]/(3 Sqrt[3]) + 2/7 Hypergeometric2F1[1, 1, 4/3, 8/7] - 2/7 Hypergeometric2F1[1, 1, 5/3, 8/7] In[56]:= N[%] Out[56]= 0.139836863456 + 0. I
$\endgroup$