This involves calculus. Solve does not do calculus. It does not know calculus (it is a whiz at algebra and knows a bit of trig).
To get a viable result notice that the (missing) third vector component is zero, and the divergence is 0 as it must be for the field to be a curl. Since D[tok[[1]],x]+D[tok[[2]],y]
vanishes, it makes sense to look for a vector field of the form {0,0,F}
where D[F,y]==tok[[1]]
and -D[F,x]==tok[[2]]
. So integrate tok[[1]]
with respect to y
and see what happens.
vf = {-((A sigma ((a + x)^2 + y^2) (-((2 (a + x) ((-a + x)^2 + y^2))/((a + x)^2 +
y^2)^2) + (2 (-a + x))/((a + x)^2 + y^2)))/((-a + x)^2 + y^2)),
-((A sigma ((a + x)^2 + y^2) (-((2 y ((-a + x)^2 + y^2))/((a + x)^2 +
y^2)^2) + (2 y)/((a + x)^2 + y^2)))/((-a + x)^2 + y^2)), 0}
Together[Curl[{0, 0, Integrate[vf[[1]], y]}, {x, y, z}] - vf]
(* Out[30]= {0, 0, 0} *)
That worked. So the field is {0, 0, Integrate[vf[[1]], y]}
.
Simplify[{0, 0, Integrate[vf[[1]], y]}]
(* Out[32]= {0, 0, 2 A sigma (ArcTan[y/(a - x)] + ArcTan[y/(a + x)])} *)