'Yields a list of MediaWikiTable objects in the section.'

@property
def tables(self):

    if (self._tables is None):
        self._tables = []
        for style in ('wikitable', 'sortable    wikitable'):
            b = (('<table    class="%s"' % style), '</table>')
            p = self.article._plaintext
            f = find_between
            for s in f(b[0], b[1], self.source):
                t = self.article.parser.MediaWikiTable(self, title=p((f('<caption.*?>', '</caption>', s) + [''])[0]), source=((b[0] + s) + b[1]))
                for (i, row) in enumerate(f('<tr', '</tr>', s)):
                    r1 = f('<t[d|h]', '</t[d|h]>', row)
                    r1 = (((f('colspan="', '"', v) + [1])[0], v[(v.find('>') + 1):]) for v in r1)
                    r1 = ((int(n), v) for (n, v) in r1)
                    r2 = []
                    [[r2.append(p(v)) for j in range(n)] for (n, v) in r1]
                    if ((i == 0) and ('</th>' in row)):
                        t.headers = r2
                    else:
                        t.rows.append(r2)
                self._tables.append(t)
    return self._tables
