atgactaatagcagtgg
####
0 'atg'
1 'act'
2 'aat'
3 'agc'
4 'agt'
5 'gg'
##
##
@codons = grep $_, split /(.{3})/, 'atgactaatagcagtgg';
print "@codons\n";
__END__
atg act aat agc agt gg
##
##
@codons0 = split /(?:.{3})/, 'atgactaatagcagtgg'; # disable capture with ?:
@codons1 = split /.{3}/, 'atgactaatagcagtgg'; # no parens
{ local $,=':'; print "@codons0\n@codons1\n"; }
__END__
::::::gg
::::::gg
##
##
@codons = 'atgactaatagcagtgg' =~ /.{1,3}/g;
print "@codons\n";
__END__
atg act aat agc agt gg
##
##
@codons = 'atgactaatagcagtgg' =~ /.{3}/g;
print "@codons\n";
__END__
atg act aat agc agt
##
##
@parts = '12abc3ef' =~ /[a-z]+|\d+/g;
print "@parts\n";
__END__
12 abc 3 ef
##
##
@parts = grep $_, split /([a-z]+|\d+)/, '12abc3ef';
##
##
@parts = split /(?<=[a-z])(?=\d)|(?<=\d)(?=[a-z])/, '12abc3ef';
##
##
0 'aaa'
1 'bb'
2 'c'
3 'dddd'
4 'a'
5 'ee'
##
##
@runs = do { my $i; grep ++$i%2, 'aaabbcddddaee' =~ /((.)\2*)/g };
print "@runs\n";
__END__
aaa bb c dddd a ee