 
 // The final * steps around <rdar://29229409>
 let fancyPattern
-  = %"quick "..((%"brown" | %"black" | %"fox" | %"dog") .. %" ")+..any()*
+  = %"quick "..((%"brown" | %"black" | %"fox" | %"chicken") .. %" ")+ 
+   .. any()* .. %"do"
+
 fancyPattern.searchTest(in: source)
 
 //===--- Parsing pairs ----------------------------------------------------===//

  , C.SubSequence : Collection, Element_<C.SubSequence> == Element
  , C.SubSequence.Index == Index, C.SubSequence.SubSequence == C.SubSequence
  {
    switch matchers.0.matched(atStartOf: c) {
    case .found(let end0, let data0):
      switch matchers.1.matched(atStartOf: c[end0..<c.endIndex]) {
      case .found(let end1, let data1):
        return .found(end: end1, data: (midPoint: end0, data: (data0, data1)))
      case .notFound(_):
        // I don't think we can know anything interesting about where to begin
        // searching again, because there's no communication between the two
        // matchers that would allow it.
        return .notFound(resumeAt: nil)
      }
    case .notFound(let j):
      return .notFound(resumeAt: j)
    }
  }
}

    print()
  }
}
//===--- Just for testing -------------------------------------------------===//

//===--- Tests ------------------------------------------------------------===//
let source = Array("the quick brown fox jumps over the lazy dog".utf8)

let source2 = Array("hack hack cough cough cough spork".utf8)

