Given a set of $n$ red and $n$ blue points in the plane, we are interested in matching red points with blue points by straight line segments so that the segments do not cross. We develop a range of tools for dealing with the non-crossing matchings of points in convex position. It turns out that the points naturally partition into groups that we refer to as orbits, with a number of properties that prove useful for studying and efficiently processing the non-crossing matchings. Bottleneck matching is such a matching that minimizes the length of the longest segment. Illustrating the use of the developed tools, we solve the problem of finding bottleneck matchings of points in convex position in $O(n^2)$ time. Subsequently, combining our tools with a geometric analysis we design an $O(n)$-time algorithm for the case where the given points lie on a circle. Previously best known results were $O(n^3)$ for points in convex position, and $O(n \log n$) for points on a circle.