my $string = "asdfasdfasdf[TEST]asdfasdf a asfd asfd a f\nasdfasdfasfd[ASDF]asdf[ER]\n"; my @treffer = $string =~ m/(\[.*?\])/gs; # das ? hinter dem * sorgt dafür, dass nicht alles zwischen der ersten [ und der letzten ] in einen Treffer eingefangen wird. print join( "\n", @treffer) , "\n";