Правильный способ экранирования любого текста для регулярного выражения в Java - использовать:
String quotedText = Pattern.quote("any text goes here !?@ #593 ++ { [");
Тогда вы можете использовать quotedText как часть регулярного выражения.Например, ваш код должен выглядеть так:
String text = "aaa aspx?pubid=222 zzz";
String quotedText = Pattern.quote( "aspx?pubid=222" );
Pattern p = Pattern.compile( quotedText );
Matcher m = p.matcher( text );
if ( m.find() )
System.out.print( "Found it." ); // This gets printed
else
System.out.print( "Didn't find it." );