I have a dataset where I am trying to extract the simple town name from the longer messy version shown here. Most of them are followed by parentheses " (.\*", but some do not follow this pattern and end in ":" (see line 200). Finally, there are some that do not have parentheses but split parts with a comma "," (see line 240, 246). 

```
                                             'Region'
196    Boston (Boston University, Boston College, Bos...
197           Bridgewater (Bridgewater State College)[2]
198    Cambridge (Harvard University, Massachusetts I...
199                       Chestnut Hill (Boston College)
200                The Colleges of Worcester Consortium:
201                             Dudley (Nichols College)
240                     Faribault, South Central College
241    Mankato (Minnesota State University, Mankato),...
242    Marshall (Southwest Minnesota State University...
243    Moorhead (Minnesota State University, Moorhead...
244           Morris (University of Minnesota Morris)[2]
245    Northfield (Carleton College, St. Olaf College...
246                 North Mankato, South Central College
247    St. Cloud (St. Cloud State University, The Col...
248            St. Joseph (College of Saint Benedict)[2]
249             St. Peter (Gustavus Adolphus College)[2]

```

What I would ideally like to see is:

```
                                   'RegionName'
    196                                 Boston
    197                            Bridgewater
    198                              Cambridge
    199                          Chestnut Hill
    200   The Colleges of Worcester Consortium
    201                                 Dudley
    240                              Faribault
    241                                Mankato
    242                               Marshall
    243                               Moorhead
    244                                 Morris
    245                             Northfield
    246                          North Mankato
    247                              St. Cloud
    248                             St. Joseph
    249                              St. Peter

```

My code currently is:

```
df['RegionName'] = df['Region'].str.extract('(.*)[:(,]', expand=False)

```

But this gives me the weird result of not getting the parentheses right:

```
196    Boston (Boston University, Boston College, Bos...
197                                         Bridgewater 
198    Cambridge (Harvard University, Massachusetts I...
199                                       Chestnut Hill 
200                 The Colleges of Worcester Consortium
201                                              Dudley 
240                                         Faribault
241     Mankato (Minnesota State University, Mankato)
242                                         Marshall 
243    Moorhead (Minnesota State University, Moorhead
244                                           Morris 
245                      Northfield (Carleton College
246                                     North Mankato
247             St. Cloud (St. Cloud State University
248                                       St. Joseph 
249                                        St. Peter 

```

I have also tried:

```
df['RegionName'] = df['Region'].str.extract('(.*)[ (.*|:|,]', expand=False)

```

I am not sure exactly how to extract the string using all three patterns at the same time. Would be open to a two line solution as well.
Thanks (apologies if this is formatted poorly!)