#include <bits/stdc++.h>
using namespace std;
clock_t time_p = clock();
void Time() {
  time_p = clock() - time_p;
  cerr << "Time Taken : " << (float)(time_p) / CLOCKS_PER_SEC << "\n";
}
const int INF = 1e9 + 7;
long double pi = 3.1415926535897932;
const long long INF64 = 9e18;
const long long mod = 1e9 + 7;
const int mxN = 1e6 + 6;
int cnt[mxN];
void solve() {
  string s, p, t;
  cin >> s >> t >> p;
  bool flag = true;
  vector<int> cnts(26, 0), cntp(26, 0), cntt(26, 0);
  for (auto x : s) cnts[x - 'a']++;
  for (auto it : p) cntp[it - 'a']++;
  for (auto it : t) cntt[it - 'a']++;
  int lst = 0;
  for (int i = 0; i < s.size(); ++i) {
    bool ok = false;
    for (int j = lst; j < t.size(); ++j) {
      if (s[i] == t[j]) {
        ok = true;
        lst = j + 1;
        break;
      }
      lst = j;
    }
    if (ok == false) flag = false;
  }
  if (flag == false) {
    puts("NO");
    return;
  }
  flag = true;
  for (auto it : t) {
    int x = it - 'a';
    if (cntp[x] + cnts[x] < cntt[x]) {
      flag = false;
      break;
    }
  }
  if (flag)
    puts("YES");
  else
    puts("NO");
  return;
}
int main() {
  ios_base ::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
  cout.precision(35);
  int t;
  cin >> t;
  while (t--) solve();
  Time();
  return 0;
}
