##
MATCH = {} = { this is a test }
####
#!/usr/bin/env perl -l
use strict;
use warnings;
my $line = 'EntityMappingFetchByName?[](EntityName$ = DERIVED_ATTRIBUTE_TABLE, FieldNames$[] = [ USER_ENTITY_NAME ], text${} = { this is a test }), line 6';
my $re = qr< ( { [^}]+ } | \[ [^\]]+ \] ) >x;
print "MATCH = $1" while $line =~ /$re/g;
####
MATCH = [ USER_ENTITY_NAME ]
MATCH = { this is a test }