The source string is:

```
# Python 3.4.3
s = r'abc123d, hello 3.1415926, this is my book'

```

and here is my pattern:

```
pattern = r'-?[0-9]+(\\.[0-9]*)?|-?\\.[0-9]+'

```

however, `re.search` can give me correct result:

```
m = re.search(pattern, s)
print(m)  # output: <_sre.SRE_Match object; span=(3, 6), match='123'>

```

`re.findall` just dump out an empty list:

```
L = re.findall(pattern, s)
print(L)  # output: ['', '', '']

```

why can't `re.findall` give me the expected list:

```
['123', '3.1415926']

```