c:\@Work\Perl\monks>perl -wMstrict -MData::Dump -le "print qq{perl version: $]}; ;; my $path = '/abc/def/ghi'; ;; local our @dirs; $path =~ m{ (\A (?: / [^/]+ \b)+) (?{ push @dirs, $^N }) (?!) }xms; ;; dd \@dirs; " perl version: 5.008009 ["/abc/def/ghi", "/abc/def", "/abc"] #### c:\@Work\Perl\monks>perl -wMstrict -MData::Dump -le "print qq{perl version: $]}; ;; my $path = '/=abc/def/ghi=/---'; ;; local our @dirs; $path =~ m{ (\A (?: / [^/]+ (?! [^/]))+?) (?{ push @dirs, $^N }) (?!) }xms; ;; dd \@dirs; " perl version: 5.008009 ["/=abc", "/=abc/def", "/=abc/def/ghi=", "/=abc/def/ghi=/---"]