Это работает
Найти: (?m)^[^\S\r\n]*(\S+)[ \t]+(\S+)[ \t]+(\S+)
Заменить: array($2, "$1", "$3"),
https://regex101.com/r/xZjcCO/1
Если у вас есть это
FOO 100 BOR
PAL 350 PIL
КИЛ 090 КУП
FAS 130 FOO's BAR
ФАО 120 Пицца радости poy
изменить регулярное выражение на это (?m)^[^\S\r\n]*(\S+)[ \t]+(\S+)[ \t]+(\S+(?:[^\S\r\n]*\S+)*)
, который обрезает пробел в конце.
https://regex101.com/r/3d5JTh/1
вывод:
array(100, "FOO", "BOR"),
array(350, "PAL", "PIL"),
array(090, "KIL", "KUP"),
array(130, "FAS", "FOO's BAR"),
array(120, "FAO", "Pizza's joy poy"),
обновление
Вы можете смешивать фразы до тех пор, пока есть разделитель табуляции:
(?m)^[^\S\r\n]*(\S+(?:[^\S\t\r\n]*\S+)*)\t+(\S+(?:[^\S\t\r\n]*\S+)*)\t+(\S+(?:[^\S\t\r\n]*\S+)*)
https://regex101.com/r/CoiGtU/1
Выход
array(100, "FOO", "BOR"),
array(350, "PAL", "PIL"),
array(090, "KIL", "KUP"),
array(130, "FAS", "FOO's BAR"),
array(120, "FAO", "Pizza's joy poy"),
array(My Pot, "125", "FAO"),
array(Pizza's joy poy, "120", "POI"),