Помогите разрешить один ньюанс в регульрном выражении

Pyatka-ubiyca

Новичок
Помогите разрешить один ньюанс в регульрном выражении

Имею такое регульряное выражение

PHP:
preg_match_all("/(?<=test\.php\?id=[0-9]\">)[а-яА-Яa-zA-Z0-9]*(?=<\/a>)/", $text, $id);

которым выдергиваю названия ссылок..
но вот в этом месте

?id=[0-9]\">)

id может быть и одназназным, и двух и трех значным числом... причем
[0-9]* - не работает! и выдает вот эту ошибку :
Warning: Compilation failed: lookbehind assertion is not fixed length at offset 29 in

как решить проблему? не хотелось бы делать второй цикл где я бы сначала выдергивал число, а потом уже все что мне нужно...

с регулярными выражениями в первый раз... чтото пока не получаеться ниче(((
 
заменить ретроспективную проверку на незахватывающие скобки?
 
"заменить ретроспективную проверку на незахватывающие скобки? "

можно чуть подброней? или хотябы смысл этих незахватываюших скобок?

"/(test\.php\?id=[0-9]*\"> )[а-яА-Яa-zA-Z0-9]*(<\/a> )/U
"
яже писал что [0-9]* - не прокатывает! или я чтото мимо глаз пропустил?
 
но вот в этом месте

?id=[0-9]\"> )

id может быть и одназназным, и двух и трех значным числом... причем
[0-9]* - не работает! и выдает вот эту ошибку :
---------------------------------------------
для этого пишут так \d+
 
Сверху