First of all, make your regex less greedy using an operator ?. This will allow you not to get more than what you think you will receive. The following is the statement /sat the end of your expression. I assume that you are parsing an HTML file that contains many new " \n" string characters .
$value=preg_match_all('/<div class=\"lot\-price\-block\">(.*?)<\/div>/s',$file_contents,$estimates);
source
share