changes behavior when replacing (captures that didn't match result in placeholders replaced by empty string)