r"
(?: # A name with spec OR just a name
(?P<NAME_AND_SPEC>
(?P<NAME_WITH_SPEC>
# Example: De Kat in de Wijngaard
# At the start of string, capture name by capitalisation
(?:De;\s|Het;\s|Een;\s)? (?:[A-Z\']\w*)(?:\'?\s\w+)*?
) # end group NAME_WITH_SPEC
\s
(?P<NAME_SPEC>
uithangend\sin\shet\sonderhuis|op\sde\shoek\suithangend|
naast\sde\sdeur\suithangend|in\sde\sbalans\suithangend|
uithangend\sen\sboven\sde\sdeur|naast\suithangend|
uithangend\sof\sin\sde\sgevel|voor\suithangend|wederzijds\suithangend|
uithangende|uithangend|uitangend|uithangt|utihangend|uihangend|
uithangen|uihangt|op\seen\sstok\suitstekend|voor\suitstekend|
uitstekend|uistekend|in\sde\sgevel\sof\sboven\sde\sdeur|
in\sde\sgevel\svan\shet\sachterhuis|in\sde\sgevel\sgeschilderd|
op\sde\sgevel\sgeschilderd|ertegenover\sin\sde\sgevel|
naast\sde\sgang\sin\sde\sgevel|voor\sin\sde\sgevel|
achter\sin\sde\sgevel|in\sde\sgevel\svan\shet\svoorste\shuis|
onder\sin\sde\sgevel|boven\sin\sde\sgevel|in\sde\sgevel\suitgehouwen|
uitgehouwen\sin\sde\sgevel|in\sde\sgevel\sgehouwen|
op\sde\shoek\svan\sde\sgang\sin\sde\sgevel|
in\sde\sgevel\svan\shet\sachterhuis|in\sde\szijgevel|
boven\sde\strap\sin\sde\sgevel|ten\sdele\sin\sde\sgevel|
in\sde\sgevel\sstaat|boven\sde\sdeur\sin\sde\sgevel|bovenin\sde\sgevel|
in\sde\sgevel|inde\sgevel|in\sdfe\sgevel|bovenop\sde\sgevel|boven\sop\sde\sgevel|
op\sde\sgevel|boven\sgevel|boven\sde\sgevel|voor\sde\sgevel\shangend|
in\shet\sbord\svoor\sde\sgevel|voor\sde\sgevel\sgespijkerd|
voor\sde\sgevel|voor\saan\sde\sgevel|in\sde\svoorgevel|
in\sde\sachtergevel|boven\saan\sde\sgevel\s|
aan\sde\sgevel\sgeschilderd|aan\sde\sgevel|voor\stegen\sde\sgevel|
tegen\sde\sgevel\saangespijkerd|tegen\sde\sgevel|
boven\sde\sdeur\sgeschilderd|boven\sde\sdeur\sgespijkerd|
boven\sde\sdeur\suitgehouwen|boven\sde\sdeur\svan\sde\spoort|
boven\sde\sdeur\shangend|in\shet\skalf\sboven\sde\sdeur|
boven\sde\sonderdeur|boven\sin\sde\sdeur|in\sde\sdeur|
boven\sde\sdeur\svan\sde\sgang|boven\sde\sdeur\sgeschreven|
voor\sof\sboven\sde\sdeur|boven\sde\sdeur\sen\spoort|boven\sde\sdeur|
boven\sdeur|op\sde\sdeur\sgeschilderd|op\sde\sdeur\sgeschreven|
op\sde\sdeur|voor\sde\sdeur\svan\sde\sgang|voor\sde\sdeur\sgeschilderd|
voor\sde\sdeur\ss|voor\sde\sdeur\s|aan\sde\sdeur|
boven\sde\singang\svan\sde\sdeur|boven\sde\singang|bij\sde\singang|
op\sde\spoort\svan\sde\sgang|voor\sde\spoort\sgeschilderd|
voor\sde\spoort\svan\sde\sgang\sgeschilderd|voor\sde\spoort|
boven\sde\svoorpoort|bij\sde\sdeur\sgeschilderd|
bij\sde\sdeur\svan\sde\sgang|bij\sde\sdeur|ervoor\sgeschilderd|
ervoor\sgeschreven|ervoor|met\seen\sbord\sop\sde\sluifel|
voor\sop\sde\sluifel|op\sde\sluifel|in\sde\sluifel|aan\sde\sluifel|
tegen\sde\sluifel|boven\sde\spui|boven\sde\sgangdeur|
boven\sde\spoort\suitgehouwen|boven\sde\spoort\sof\sdeur|
boven\sde\spoort|naast\sen\sop\sde\spoort\sgeschilderd|op\sde\spoort|
voor\sde\sluifel|boven\sde\sluifel|uitgehouwen\sboven\sde\sgang|
boven\sde\sgang|voor\sde\sgang\sgeschilderd|voor\sde\sgang|
in\sde\sgang|op\sde\spakdeur\sgeschreven|op\sde\spakdeuren|
op\sde\spakdeur|op\sde\sscheiding|erbovenop|erboven|
uitgedrukt\sin\seen\sbrievendeur|
in\shet\skalf\svan\sde\sdeur\sgesneden|in\shet\skalf|
tegen\sde\spui\sgespijkerd|tegen\sde\spui|boven\sde\sstaat|
voor\shet\shuis\sgespijkerd|voor\shet\shuis|op\sde\sstok|
in\sde\spuibalk|in\sde\spui|op\sde\shoek\svan\sde\sgang|
voor\sde\slooierij|op\shet\shuis|erop\sgeschilderd|erop|
boven\sde\spost\svan\sde\sdeur|voor\shet\shek\sgeschilderd|
tegen\sde\szijgevel|op\shet\szoldervenster|
aan\shet\sdakvenster\sgeschilderd|voor\saan\sde\spoort|aan\sde\spoort|
voor\seen\sdeel|tegen\shet\spakvenster\sgeschilderd|aan\selke\szijde|
ertegen|aan\shet\spoortje|geschilderd|tegen\sde\sschutting|
op\sde\sloods|in\shet\szolderraam|in\shet\szoldervenster|belend|
uitgestoken|boven\shet\shuis|aan\selke\szijde|voor\sde\s\deur|
voor\sde\sdeur\svan\sde\sgang
) # end group NAME_SPEC
(?:;?\s)?
)+? # end group NAME_AND_SPEC
| # or
# But if it starts with Huis, Erf etc. it is not a name
(?!(?:Huis\sen\serf|Hui|Koetsh|Wagenh|Winkel|Stal|Tent|\w*buurt|Manege|Achtererf|Erf|Weiland|
Werf|Ramen|Hoekerf|Schip|Obligatie|Koopmanshuis|Poort|Gang|Scheiding|Park|Gebouwd|Strook|Kavel|
Laagte|\w*weer|\w*pad|Sint|Erven|Stuk|Opstal|Fortificatie\w*|
Achterhuis|Obligatie|Dubbel|Achter\s(?:de|het)|Leeg|Ledig|Gebruik|Streek|
\w*gebouw|\w*brief|\w*molen|\w*winkel|Bouwvallig|Sloot|Vrije\s\w*gang|
Gedeelte|Spijker|Schans|Kamer|Rente|Warmoes|Graf|Molen|Grond|\w*\sen\serf|
Raam|Houten|Timmerloods|Loods|Getimmer|Land|Woning|Korte|Een\sstuk\sland|
Contract|Overeenkomst|Tuin|Plantage|Pakhuis|Kromme|Sloep|
\w*veer|\w*raam|Afbraak|Snijding|Afgebrand|Gehoogd\w*|Helft\svan|\w*poort|
Actie|(?:(?:Klein|Kleine|Een|Twee|Drie|Vier|Vijf|Zes|Zeven|Acht|Negen|
Tien)\s)?\w*(?:hui(?:sjes|sen|zinge|zing|zen|js)|roeden|woning|voet|
kampjes|opstallen|erven|erfjes)|\w*plaats|\w*straat|\w*gracht\w*poort|
\w*werf|\w*sluis|\w*wal|\w*erij|\w*gang|\w*woning|\w*kerk|\w*tuin\b|
\w*stalling|\w*stal|Eerste|Tweede|[A-HK-Z]{2})\w*\s?)
(?P<NAME_NO_SPEC> # Only name, without the location of the name in house
# Example: De Koe
# At the start of string, capture name by capitalisation
# and use this ugly positive negative lookaheads to filter names ending
# in 'straat' 'steeg' etc.
(?:(?:De|Het|Een|de|het|een);\s)?[A-Z\'][\w\s\']{2,30}\b
) # end group NAME_NO_SPEC
) # end name
| # or
(?P<LEGAL_TYPE>
(?:
(?:
(?P<LEGAL>
(?:(?:\d+\/\d+)|(?:\d+))(?:(?:\s(?:in|van)\s\d+)?|\spart)|dubbel
) # end group LEGAL
\s)?
(?:van\s)?
(?P<TYPE>
# Example: 1/2
(?:
(?:\s(?:en|met)\s)?
\b[a-z]*(?:(?:Stal|Huis|Huisje|Kavel|Opstal|Lijfrentebrief|Obligatie|Tent|Manege|Weiland|Scheiding|Hoekerf|
Contract|Erf|Sloot|Sloep|Molen|huis|\w*huis|huisje|huisjes|hof|hoven|gang|schip|
schuit|schuiten|stallen|stalling|stal|beplanting|schuur|getimmerte|erf|erij|erven|vallig|
Ledig|herberg|priëlen|kolfbanen|lakenraam|molen|Woning|woning|woningen|oven|loods|loodsen|baan|keet|land|logement|schuttingen|\w*akerij|\w*winkel|
rije\s\w*gang|sloep|aljoot|hok|veld|scheepje|schuit|kof|eiker|
bligatie|wal|Snijding|fregat|wijd|Leeg\serf)\b|(?:(?:Huiz|
huiz|tuin|\w*tuin|(?:(?:in\s)?de\s\w*\s*)gereedschappen)\w*))
)+
)+ # end group TYPE
)+
)+ # end group LEGAL_TYPE
| # or
(?:,?\s)+?
(?P<LOCATION>
# Example: tussen Prinsengracht en Noordse Bos
(?:(?:grenzend|op|in|aan|tussen|onder|WZ|tusen|recht|over|naast|achter|grenzend|bij|buiten|
benoorden|bezuiden|bewesten|tegenover|beoosten|voorbij|schuin|park|hoek|
ten\seinde|(?:het\s(?:eerste|tweede|derde|vierde|vijfde|zesde|zevende|