Всё работает именно так, как написано в вашем регулярном выражении. От первого встреченного
<li class="classified">
до последнего
</li>
.
Если хотите выбрать по отдельности каждый элемент, то надо использовать квантификатор нежадности.
preg_match_all('/<li class="classified">(.*?)<\/li>/msi', $str, $matches);