1/ You can use the System condition "Pick by evaluate", and compare the X of your sprites to take the one you want. "The one in the middle" is rarely the criteria to select though, more like "the one with the highest speed" or something like that, where the System condition "Pick by lowest/highest" will help you.
2/ No "official" advance tutorial. But lots of tutorials from people.
For a good learning curve, I would suggest first taking a look the the manual each time you start using a new object type you didn't know. Then, look for tutorials on the specifics you need from those objects. Or just try to do something, fail, try again, ask for help here, discuss the logic behind your problem, understand the solutions that you will be given, ...
A good way of learning is trying to do your own game. But don't go too big, go after the systems the ones after the others. All the first ideas you gave are simple :