How to effectively animate a "lasso"?
I propose to use curves, parenting and hooks to do that.

The red ring have to move along (say) X
The gray tube is like pushed and unbent to the horizontal
The blue tube is translated along the gray tube


We can use a curve modifier to constraint both tubes to follow a curve.

But we also want that it unbend along its own size.
So the circular part of the curve have to be pushed on right. We do that using a hook to the ring of the corresponding control points.
The hook influence is set to 0.2 in order to avoid these points to be pushed right at the same speed as the other objects (an influence of 1 would have been the same speed).

From that, the blue tube is simply parented to the ring.
But the gray tube needs to move along from the ring but except its last part which needs to stay stuck on the black sphere.
So instead of parenting it, we use a hook again on all vertices except the last ones (the one near the black sphere which is simply placed near it). These vertices are set in a vertex group used in the hook modifier:

Though, this setup is very specific to this left/right movement.