Ответ на б)
Pattern.compile()
- статический метод. Если вы раскомментируете p.compile();
, он создаст новый объект, который вы отбрасываете (он ни к чему не привязан). Чтобы получить то, что вы хотели, вам нужно сделать что-то вроде:
p = Pattern.compile("mom");
, а затем получите новый сопоставитель из вновь созданного шаблона.