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 #### 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