in reply to split and capture some of the separators
A few (more) examples of what your trying to parse would help, but this seems to do what I think your trying to do?
my @s = ( '129-129A & B-131 NORTH AV', '129-129A + B-131 NORTH AV', '129-129A / B-131 NORTH AV', '129-129A - B-131 NORTH AV', ); print join'|', grep $_, split '(?:\s+([&/+-])\s+)|\s+', $_ for @s; 129-129A|&|B-131|NORTH|AV 129-129A|+|B-131|NORTH|AV 129-129A|/|B-131|NORTH|AV 129-129A|-|B-131|NORTH|AV
Update after your update: Maybe this is nearer/
perl> print join'|', grep $_, split '([&/+-])|\s+', $_ for @s; 129|-|129A|&|B|-|131|NORTH|AV 129|-|129A|+|B|-|131|NORTH|AV 129|-|129A|/|B|-|131|NORTH|AV 129|-|129A|-|B|-|131|NORTH|AV
|
|---|