If the searched value is not found then insertion position is -1-(index starting with 1 where the element can be inserted). So the max insertion position will be -1-(5) = -6.
If the searched value is found then it will return the index (starting with 1) of the value. So in this case the max position will be 4.
So the answer is 4 to -6.
Straight from the JavaDocs, they say binarysearch() will returns
Returns:
index of the search key, if it is contained in the list; otherwise, (-(insertion point) - 1). The insertion point is defined as the point at which the key would be inserted into the list: the index of the first element greater than the key, or list.size(), if all elements in the list are less than the specified key. Note that this guarantees that the return value will be >= 0 if and only if the key is found.