content: // Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
  // for details. All rights reserved. Use of this source code is governed by a
  // BSD-style license that can be found in the LICENSE file.
  
  part of dart.core;
  
  /**
   * An interface for basic searches within strings.
   */
  abstract class Pattern {
    /**
     * Match this pattern against the string repeatedly.
     *
     * The iterable will contain all the non-overlapping matches of the
     * pattern on the string, ordered by start index.
     *
     * The matches are found by repeatedly finding the first match
     * of the pattern on the string, starting from the end of the previous
     * match, and initially starting from index zero.
     *
     * If the pattern matches the empty string at some point, the next
     * match is found by starting at the previous match's end plus one.
     */
    Iterable<Match> allMatches(String str);
  
    /**
     * Match this pattern against the start of string.
     *
     * If [start] is provided, it must be an integer in the range `0` ..
     * `string.length`. In that case, this patten is tested against the
     * string at the [start] position. That is, a match is returned if the
     * pattern can match a part of the string starting from position [start].
     */
    Match matchAsPrefix(String string, [int start = 0]);
  }
  