in reply to Extracting a (UK) Address

I may be teaching grannies to suck eggs, but here goes anyway ... IMO, you need to identify and use, one, or more, invariant properties of the address block e.g. ...

Even better is if, of the invariants thus identified, at least one can be demonstrated to be unique for the address block.

In your supplementary data example, it would appear that the address block is the 3rd block where each block is separated from the next by \n{2,}.

Having identified and isolated the address block, it then becomes a simpler matter of parsing the address details...

Thinx: OTOH, there may be a chance that the address is stored as a formatted block in the Word doc - so using Win32::OLE may be a first step to read the object direct from the doc...

Thinx again: It's highly probable that a combination of the 2 would be required to handle to inconsistencies introduced by the evolution of the doc...

A user level that continues to overstate my experience :-))