/
\A\s*
(?: #########################################################################
    # Option A: [<Addition to address 1>] <Street name> <House number>      #
    # [<Addition to address 2>]                                             #
    #########################################################################
    (?:(?P<A_Addition_to_address_1>.*?),\s*)? # Addition to address 1
(?:No\.\s*)?
    (?P<A_Street_name_1>\pN+[a-zA-Z]?(?:\s*[-\/\pP]\s*\pN+[a-zA-Z]?)*) # Street name
\s*,?\s*
    (?P<A_House_number_1>(?:[a-zA-Z]\s*|\pN\pL{2,}\s\pL)\S[^,#]*?(?<!\s)) # House number
\s*(?:(?:[,\/]|(?=\#))\s*(?!\s*No\.)
    (?P<A_Addition_to_address_2>(?!\s).*?))? # Addition to address 2
|   #########################################################################
    # Option B: [<Addition to address 1>] <House number> <Street name>      #
    # [<Addition to address 2>]                                             #
    #########################################################################
    (?:(?P<B_Addition_to_address_1>.*?),\s*(?=.*[,\/]))? # Addition to address 1
    (?!\s*No\.)(?P<B_House_number>\S\s*\S(?:[^,#](?!\b\pN+\s))*?(?<!\s)) # House number
\s*[\/,]?\s*(?:\sNo\.)?\s+
    (?P<B_Street_name>\pN+\s*-?[a-zA-Z]?(?:\s*[-\/\pP]?\s*\pN+(?:\s*[\-a-zA-Z])?)*|[IVXLCDM]+(?!.*\b\pN+\b))(?<!\s) # Street name
\s*(?:(?:[,\/]|(?=\#)|\s)\s*(?!\s*No\.)\s*