Прежде всего, синтаксический анализ HTML / XML с помощью регулярных выражений обычно считается плохой идеей .
Так что использование парсера вроде BeautifulSoup - действительно лучшая идея.
То, что вы хотите, можно сделать следующим образом:
from BeautifulSoup import BeautifulSoup
text = """
<ul class="descShort bullet">text1</ul>
<a href="example.com">test</a>
<ul class="descShort bullet">one more</ul>
<ul class="other">text2</ul>
"""
soup = BeautifulSoup(text)
# to get the contents of all <ul> tags:
for tag in soup.findAll('ul'):
print tag.contents[0]
# to get the contents of <ul> tags w/ attribute class="descShort bullet":
for tag in soup.findAll('ul', {'class': 'descShort bullet'}):
print tag.contents[0]