#!/usr/bin/perl # https://perlmonks.org/?node_id=1226189 use strict; use warnings; #print glob qq("$_") =~ s/[^|\n]+/{$&}/gr while ; print map tr/\1-\7/{}[]"*?/r, glob +('"' . tr/{}[]"*?/\1-\7/r . '"') =~ s/[^|\n]+/{$&}/gr while ; __DATA__ some text foo | some text BAR | oh , no , commas | some text BAZ | some text QUX some,text,FOO{3} | some text BAR*? | "one" two | some , text , QUX