Restore the context to the last saved one and drop it.
The saved context MUST be removed.
Called each time that the last alternative (of the
previous alternative point) is starting.
Should be like 'context_restore' followed by 'context_cut'.
The current state must be set. It is the
first state, the root of the search.
When the feature returns, 'search_is_success' must be
checked to know if a solution was found.
When search_is_success=False, it means that there
is no solution at all. Conversly, if search_is_success=True,
then the first solution is found and 'search_next'
can be called to get the next solution if it exists.
When the feature returns, 'search_is_success' must be
checked to know if a solution was found.
When search_is_success=False at the end, it means that there
is no more solution. Conversly, if search_is_success=True,
then a solution is found and 'search_next'
can be called again to get the next solution.
Such end occurs either if a solution is found
(and then search_is_success=True) or no solution
is found (and then search_is_success=False).
That feature should be modified only by 'continue'
and 'backtrack'.
Item(0) is the starting position in the text where
starts the substring who is matching the whole pattern.
Next elements are the starting positions in the text of
substrings matching sub-elements of the pattern.
Elements before item(0) refers to positions in the
substitution_pattern. They are stored in reverse order,
the first verbatim string being at index -1, the
second one at index -2...