code: public static List<String> findAll(CharSequence self, Pattern pattern) {
          Matcher matcher = pattern.matcher(self.toString());
          boolean hasGroup = hasGroup(matcher);
          List<String> list = new ArrayList<String>();
          for (Iterator iter = iterator(matcher); iter.hasNext();) {
              if (hasGroup) {
                  list.add((String) ((List) iter.next()).get(0));
              } else {
                  list.add((String) iter.next());
              }
          }
          return new ArrayList<String>(list);
      }
docs: Returns a (possibly empty) list of all occurrences of a regular expression (in Pattern format) found within a CharSequence.
  <p>
  For example, if the pattern doesn't match, it returns an empty list:
  <pre>
  assert [] == "foo".findAll(~/(\w*) Fish/)
  </pre>
  Any regular expression matches are returned in a list, and all regex capture groupings are ignored, only the full match is returned:
  <pre>
  def expected = ["One Fish", "Two Fish", "Red Fish", "Blue Fish"]
  assert expected == "One Fish, Two Fish, Red Fish, Blue Fish".findAll(~/(\w*) Fish/)
  </pre>
  
  @param self    a CharSequence
  @param pattern the compiled regex Pattern
  @return a List containing all full matches of the Pattern within the CharSequence, an empty list will be returned if there are no matches
  @see #findAll(String, java.util.regex.Pattern)
  @since 1.8.2