'Pick by evaluate' checks the expression for every object, and picks it if the expression is not zero.
You can use the OR and AND expression operators to do advanced picking, for example:
Pick by evaluate (Sprite.X < 500) AND (Sprite.Y < 500 OR Sprite('Flag') = 1)