According to the javadoc: 

Replaces every subsequence of the input sequence that matches the pattern with the given replacement string.

This seems to indicate that this call will not replace, unless a match is made.

And yet:

```
public class MisMatch {
    public static void main(String args[]){
        Pattern doubleSlash = Pattern.compile("\\\\");
        String stringWithSingleSlash = "maybe\\no";
        System.out.println("Matches:"+doubleSlash.matcher(stringWithSingleSlash).matches());
        String replace = doubleSlash.matcher(stringWithSingleSlash).replaceAll("ABC");
        System.out.println(replace);
        System.out.println("Equal:"+(stringWithSingleSlash.equals(replace)));
    }
}

```

This prints:

Matches:false

maybeABCno

Equal:false

* so it is not matching, but still replacing. What am I missing here?