my $equation = '979x + 87y - 8723z = 274320';
my $vars = 'xyz';
my $operators = qr/[-+*\/%=]/;
my @parts = $equation =~ /([^\s$vars]+|[$vars]|$operators)/g;
####
perl -d
DB<1> $equation = '979x + 87y - 8723z = 274320'
DB<2> $vars='xyz'
DB<3> $operators=qr/[-+*\/%=]/
DB<4> x $equation =~ /([^\s$vars]+|[$vars]|$operators)/g
0 979
1 'x'
2 '+'
3 87
4 'y'
5 '-'
6 8723
7 'z'
8 '='
9 274320
####
my @parts = $equation =~ /([^xyz]+(?=[xyz])|[xyz])/g;
####
perl -d
DB<1> $_='979x + 87y - 8723z = 274320'
DB<2> x /([^xyz]+(?=[xyz])|[xyz])/g
0 979
1 'x'
2 ' + 87'
3 'y'
4 ' - 8723'
5 'z'