I thought the column filter was more flexible, but perhaps my memory is failing me. You could always select columns with a JSL snippet in this fashion:
NamesDefaultToHere(1);
dt = Open("$SAMPLE_DATA/Probe.jmp");
allCols = dt << getColumnNames("String");
myCols = {};
for(c=1, c<=NItems(allCols), c++,
thisCol = allCols[c];
if(StartsWith(thisCol, "M") & EndsWith(thisCol, "VGATERTFF"), InsertInto(myCols, thisCol));
);
dt << selectColumns(myCols);
then just hit 'Stack Columns' in the dialog. Not sure if you wanted to use code, though. As usual, the 'best' answer depends on exactly what needs to be done, by whom and how often.