$pattern = '/^[,(1_1_1)(1_1_2)(1_1_3)(1_1_4)]+?/';
$stack = '1_1_1,1_1_2,1_1_3';
$result = preg_match($pattern, $stack);

Niestety powyższy kod bierze pod uwagę cyfry i _ a nie całe ciągi takie jak 1_1_2 czy 1_1_3
$stack powinna się składać tylko i wyłącznie z podanych stringów, czyli pasować do: 1_1_1,1_1_2,1_1_3 ale nie do 1_1_1,1_2_2,1_1_3

Ma ktoś jakiś pomysł? Bardzo mi zależy na czasie :(

Głupie wyrażenia regularne :P zawsze jest z nimi jakiś problem :)

Rozwiązanie:

 $pattern = '/^(,?|(1_1_1)|(1_1_2)|(1_1_3)|(1_1_4))+$/';

Temat do zamknięcia, btw. długo już nie zaglądałem na to forum i muszę przyznać że mało wyświetleń mojego posta było... Troszki się zawiodłem :(