use strict; use warnings; my $line = ; my (@caught) = ($line =~ /(?:X<([^>]+)>)/g); # äußere Klammer wird nicht gefangen wegen ?: print "$_\n" for (@caught); 1; __DATA__ X<$!> X<$ERRNO> X<$OS_ERROR>