code: def test_tregex(self, corenlp_client):
      # the PP should be easy to parse
      pattern = "PP < NP"
      matches = corenlp_client.tregex(TEXT, pattern)
      print(matches)
      assert matches == {
          "sentences": [
              {
                  "0": {
                      "sentIndex": 0,
                      "characterOffsetBegin": 45,
                      "codepointOffsetBegin": 45,
                      "characterOffsetEnd": 66,
                      "codepointOffsetEnd": 66,
                      "match": "(PP (IN with)\n  (NP (NNP Stanford) (NNP CoreNLP)))\n",
                      "spanString": "with Stanford CoreNLP",
                      "namedNodes": [],
                  }
              }
          ]
      }
  
imports: from http.server import BaseHTTPRequestHandler, HTTPServer
  import multiprocessing
  import pytest
  import requests
  import stanza.server
  import stanza.server.client
  import shlex
  import subprocess
  import time
  from stanza.models.constituency import tree_reader
  from stanza.tests import *
label_desc: Use image node_id 9 for calling the TestCoreNLPClient obj's underlying member method code with example usage: obj.test_tregex(corenlp_client) without return types