ExtractAll on a single pattern
``` python
s = pd.DataFrame(["I love you", "Pandas", "<3"], index=["A", "B", "C"],columns=['a'])

io=r"\b(Pandas)\b"

s['a'].str.extractall(io)


```
#### Expected Output

```
          0   
```

  match  
B 0      Pandas 
#### Output of `pd.show_versions()`
## INSTALLED VERSIONS

commit: None
python: 3.5.2.final.0
python-bits: 64
OS: Linux
OS-release: 4.2.0-27-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_GB.UTF-8

pandas: 0.18.1
nose: 1.3.7
pip: 8.1.2
setuptools: 27.2.0
Cython: 0.24.1
numpy: 1.11.1
scipy: 0.18.1
statsmodels: 0.6.1
xarray: None
IPython: 5.1.0
sphinx: 1.4.6
patsy: 0.4.1
dateutil: 2.5.3
pytz: 2016.6.1
blosc: None
bottleneck: 1.1.0
tables: 3.2.3.1
numexpr: 2.6.1
matplotlib: 1.5.3
openpyxl: 2.3.2
xlrd: 1.0.0
xlwt: 1.1.2
xlsxwriter: 0.9.3
lxml: 3.6.4
bs4: 4.5.1
html5lib: 0.999999999
httplib2: None
apiclient: None
sqlalchemy: 1.0.13
pymysql: None
psycopg2: None
jinja2: 2.8
boto: 2.42.0
pandas_datareader: None
<details>
# Paste the output here

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ian/anaconda3/lib/python3.5/site-packages/pandas/core/strings.py", line 1621, in extractall
    return str_extractall(self._orig, pat, flags=flags)
  File "/home/ian/anaconda3/lib/python3.5/site-packages/pandas/core/strings.py", line 716, in str_extractall
    result = DataFrame(match_list, index, columns)
  File "/home/ian/anaconda3/lib/python3.5/site-packages/pandas/core/frame.py", line 263, in __init__
    arrays, columns = _to_arrays(data, columns, dtype=dtype)
  File "/home/ian/anaconda3/lib/python3.5/site-packages/pandas/core/frame.py", line 5352, in _to_arrays
    dtype=dtype)
  File "/home/ian/anaconda3/lib/python3.5/site-packages/pandas/core/frame.py", line 5431, in _list_to_arrays
    coerce_float=coerce_float)
  File "/home/ian/anaconda3/lib/python3.5/site-packages/pandas/core/frame.py", line 5489, in _convert_object_array
    'columns' % (len(columns), len(content)))
AssertionError: 1 columns passed, passed data had 6 columns
</details>

I am new to extractall() and the google resources are somewhat scarce. 
I am trying to find the rows with the most hits of the words in a string so I am using normal regex syntax to construct a pattern to look for all whole words. It works fine if I look for more than one word:

> > > io=r"\b(I)\b|\b(love)\b|\b(you)\b"
> > > s['a'].str.extractall(io)
> > >            0     1    2
> > >   match  
> > > A 0        I   NaN  NaN
> > >   1      NaN  love  NaN
> > >   2      NaN   NaN  you

But for one word it fails, if use just extract then it works.

> > > io=r"\b(Pandas)\b"
> > > s['a'].str.extract(io)
> > > A       NaN
> > > B    Pandas
> > > C       NaN

I then obviously have to change my logic based on if it is a single or multi word.

Unless I add a bogus lookup!

> > > io=r"\b(Pandas)\b|\b(blahblahblah)\b"
> > > s['a'].str.extractall(io)
> > >               0   1
> > >   match  
> > > B 0      Pandas NaN

Am I doing something daft? Is this a bug or maybe a feature if so could this be changed to work on a single lookup?

Thanks
