zwykle kiedy chciałem np. uzyskać dane z czegoś takiego <span =... >dane</span> to robiłem wyrażenie:
$wyrazenie = '/<span=...>([^<])<\/span>/'
a następnie używałem funkcji preg_match_all. Czyli zadałem początek np. span-a i "mówłem" zapisuj dane dopóki nie natrafisz na "<"
mój problem się jednak skomplikował ponieważ przeszukuję bardzo długi ciąg znaków w którym nie mogę wyodrębnić jakiegoś pojedynczego znaku który będzie kończył ciąg czyli np. "<". (bo w międzyczasie może tych znaków wystąpić 15)
Muszę "powiedzieć" pozwalaj na dowolny znak dopóki nie napotkasz pierwszy raz ciąg x gdzie, ciąg x = '<a name=produkt_roku';
Czy da się coś takiego osiągnąć? niestety nic w stylu '/.... ^<a name=produkt_roku... /' nie działa, ponieważ jak wiadomo '^' będzie dopasowywało ciąg do początku a jak umieszczę wszystko w nawiasach [] to z koleji będzie mi przeszukiwał każdą literkę z osobna....