What is difference between

```
grep -isn "String\.format" -R .

```

and

```
grep -isn String\.format -R .

```

When I use the latter, the results include `String format` and `String.format`, but if I use the former, the results only include `String.format`. This result is same as using

```
grep -isn 'String\.format' -R .

```

Can anyone give an explanation?