http://www.perlmonks.org?node_id=1018239


in reply to how to split the string into two or three numbers based on certain value.

If you really want a regex-solution (which isn't necessarily the best idea), here's one from the bottom of the poison cabinet:

use strict; use warnings; use 5.010; $_ = '79899920179'; my $pass = qr/(?=)/; my $fail = qr/(*FAIL)/; while (/\G(\d{2,}?)(??{ $1 >= 32 ? $pass : $fail })/g) { say $1; }

I'm sure that can be simplified somehow, but right now I don't know how.

Be sure to read the warning about (??{...}) in perlre.

And here's a nicer Perl 6 solution:

$ perl6 -e 'say "79899920179".comb(/ (\d **? 2..*) <?{ $0 >= 32 }>/)' 79 89 99 201 79