Non ho mai provato, ma vedi un po' se funziona...
codice:
private void newFilterTitolo() {
        RowFilter<MyTableModel, Object> rf = null;
        RowFilter<MyTableModel, Object> rf1 = null;
        RowFilter<MyTableModel, Object> rf2 = null;
        
        //If current expression doesn't parse, don't update.
        try {
            rf1 = RowFilter.regexFilter(filterTitolo.getText(), 0);
            rf2 = RowFilter.regexFilter(filterAutore.getText(), X);//la X indica la col. Autore nella tabella
            List<RowFilter<MyTableModel,Object>> filters = new ArrayList<RowFilter<MyTableModel,Object>>(2);
            filters.add(rf1);
            filters.add(rf2);
            rf = RowFilter.andFilter(filters);            
        }
        catch (java.util.regex.PatternSyntaxException e) {
            return;
        }
        sorter.setRowFilter(rf);
    }
Ah, non ho fatto alcun controllo per semplicità...