Очень грозно.

Расскажу вот такую штуку:
```
final Pattern PATTERN = Pattern.compile("^(.*)\\s+\\((.*)\\)$");
...
Matcher matcher = PATTERN.matcher(s);
if (matcher.matches()) {
  String name = matcher.group(1);
  String signature = matcher.group(2);
}
```
То, что у регэкспа в скобочках - это группа. Мы объявили регэксп, состоящий из двух групп. Если что-то матчится под этот регэксп, можно извлечь из него значения групп.