                 }
 
                 contents = correctedString
-                corrections.append(Correction(ruleDescription: description,
-                                              location:  Location(file: file, characterOffset: range.location)))
-                break matchesLoop
+                let correction = Correction(ruleDescription: description,
+                                            location: Location(file: file, characterOffset: range.location))
+                corrections.insert(correction, at: 0)
+                break
             }
         }
 

        let toPattern = ("expect\\(\(anything)\\)\\.to\\(\(name)\\(\(anything)\\)\\)", operators.to)
        let toNotPattern = ("expect\\(\(anything)\\)\\.toNot\\(\(name)\\(\(anything)\\)\\)", operators.toNot)

        var correctedString: String? = nil

        for (pattern, operatorString) in [toPattern, toNotPattern] {
            guard let operatorString = operatorString else {

            }

            let expression = regex(pattern)
            if !expression.matches(in: self, options: [], range: range).isEmpty {
                correctedString = expression.stringByReplacingMatches(in: self,
                                                                      options: [],
                                                                      range: range,
                                                                      withTemplate: "expect($1) \(operatorString) $2")
                break
            }
        }
