preg_match_all tüm eşleşmeleri alır;
preg_match sadece birinci eşleşmeyi...
Ayrıca, deseniniz bana yandan çarklı (

) geldi. Aşağıdakini deneyebilirsiniz:
$dizi = preg_match('~<a href="([^"]+)"[^>]*>(.+?)<\/a>~is', $veri, $dizi) ? $dizi[1] : 'Adres Alınamadı' ; // Burda değişken olarak tanımlamamızın özel bir anlamı yok. Sadece el alışkanlığım.
echo $dizi;