うっかりすると、Android で、2バイト文字を含んだ文字列(全角文字と半角カナ文字など)に対して、
正規表現、java.util.regex.Pattern を処理すると期待どおりに動作しない。
正規表現が、US ASCII Only しかだめだから。。。
2バイト文字を除いた部分で正規表現したいのであれば、
[^\p{ASCII}] にマッチする文字を全て捨ててから、
java.util.regex.Matcher でマッチを実行すれば良い。
つまり、
String target = str.replace("[^\\p{ASCII}]","");
として、
Matcher m = pattern.matcher(target);
m.find();
のようにする。