Proof-number (pn) search is a best-first adversarial search algorithm especially suited for finding the game-theoretical value in game trees. The strategy of the algorithm may be described as developing the tree into the direction where the opposition characterised by value and branching factor is to expect to be the weakest. In this chapter we start by providing a short description of the original pn-search method, and two main successors of the original pn search, i.e., pn2 search and the depth-first variant proof-number and disproof-number search (pds). A comparison of the performance between pn, pn2, pds, and aß is given. It is shown that pn-search algorithms clearly outperform aß in solving endgame positions in the game of lines of action (loa). However, memory problems make the plain pn search a weaker solver for harder problems. Pds and pn2 are able to solve significantly more problems than pn and aß. But pn2 is restricted by its working memory, and pds is considerably slower than pn2. Next, we present a new proof-number search algorithm, called pds-pn. It is a two-level search (like pn2), which performs at the first level a depth-first pds, and at the second level a best-first pn search. Hence, pds-pn selectively exploits the power of both pn2 and pds. Experiments show that within an acceptable time frame pds-pn is more effective for really hard endgame positions. Finally, we discuss the depth-first variant df-pn. As a follow up of the comparison of the four pn variants, we compare the algorithms pds and df-pn. However, the hardware conditions of the comparison were different. Yet, experimental results provide promising prospects for df-pn. We conclude the article by seven observations, three conclusions, and four suggestions for future research.