use '(' ~ ')' idiom for bracket matching