my $regex = qr{ (? (?&INT) (?&SOMETHING)+ (?")? ) | (? (?&INT) (?")? ) | (? \b(?:E?A[XHL])=[0-9A-Fa-f]{2,}[Hh]? (?&SOMETHING)* (?")? ) | (? \#[0-9A-Z][0-9]{4}\b) | (? \bMEM\s?(?&HEX4):(?&HEX4) (?")? ) | (? \bMEM\s?[0-9A-Fa-fXx]{1,8}[Hh]? (?")? ) | (? \@(?&HEX4):(?&HEX4) (?")? ) | (? \bPORT\s?(?&HEX4)-(?&HEX4) (?")? ) | (? \bPORT\s?(?&HEX4) (?")? ) (?(DEFINE) (? \bINT\s?[0-9A-Fa-f]{2}[Hh]? ) (? [0-9A-Fa-fXx]{1,4}[Hh]? ) (? (?:\"[^"]+\") ) (? \/(?:E?[ABCD][XHL]|E?[SD]I|E?[SB]P|[DESC]S)=[0-9A-Fa-f]{2,}[Hh]? ) ) }x;