#! perl -w my $haystack = "abcdefghijklmnopqrstuvwxyz"; $haystack =~ /(abc)|(cde)|(fgh)|(ghi)|(ijk)|(pqr)|(rst)|(xyz)/g; if ( $#-) { for (1..$#+) { print "match at $-[$_]\n" } } __OUTPUT__ C:\test>test match at 0 Use of uninitialized value in concatenation (.) or string at C:\test\test.pl line 7. match at Use of uninitialized value in concatenation (.) or string at C:\test\test.pl line 7. match at Use of uninitialized value in concatenation (.) or string at C:\test\test.pl line 7. match at Use of uninitialized value in concatenation (.) or string at C:\test\test.pl line 7. match at Use of uninitialized value in concatenation (.) or string at C:\test\test.pl line 7. match at Use of uninitialized value in concatenation (.) or string at C:\test\test.pl line 7. match at Use of uninitialized value in concatenation (.) or string at C:\test\test.pl line 7. match at #### $x = "Mmm...donut, thought Homer"; $x =~ /^(Mmm|Yech)\.\.\.(donut|peas)/; # matches foreach $expr (1..$#-) { print "Match $expr: '${$expr}' at position ($-[$expr],$+[$expr])\n"; } prints Match 1: 'Mmm' at position (0,3) Match 2: 'donut' at position (6,11)