preg_match eller preg_match_all beror på hur många gånger ditt pattern matchar...
lite..
preg_match "Hej arne";
preg_match_all "Hej arne Hej lisa";
$string = "Rad hej Ord på Ord dig\r\nRad jag Ord heter Ord arne\r\nRad vad Ord heter Ord du\r\n";
$pattern = "/Rad (.*?) Ord (.*?) Ord (.*?)[\r|$]/s";
preg_match_all($pattern,$string,$resultat);
print_r($resultat);
i ditt fall kan du ju ta
preg_match("/från (.*?) till/s",$string,$data);
print_r($data);
du behöver inte skriva allt innan, räcker med nått unikt som är innan texten och fram till texten du vill matcha och samma sak i slutat, från där du slutar matcha till en liten bit in i strängen
om strängen är ovan "jag ska åka från malmö till stockholm" och du vill plocka ut "malmö" så räcker det med att använda "/från (.*?) till/s" i ditt pattern.
att jag har sett s i slutat på strängen beror på att den ska matcha multiline, dvs
jag ska
åka
från malmö
till
stockholm