my $s = qq~['S', ['NP', ['XP', ['YP', ['ZP'], ['ZP']]] 'VP']]~; my $wort = qr/\[\'\w+\'\](?:\,\s)*/; my $struktur; $struktur = qr/    (?:    \[\'\w+\'\,\s    ($wort|$struktur)+    \]    (?:\,\s)*    )+ /x; if( $s =~ $struktur ) {    print "gefunden!\n";    print $&; }else{    print "nicht gefunden  :-(\n"; }