#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
long long binexp(long long x, long long n, long long m) {
  if (!n)
    return 1;
  else if (n & 1)
    return (x % m) * binexp((x % m) * (x % m), n / 2, m) % m;
  else if (!(n & 1))
    return binexp((x % m) * (x % m), n / 2, m) % m;
  return 0;
}
int b[10000000];
int solve(long long _, long long _t) {
  string s, t, p;
  cin >> s;
  cin.ignore();
  cin >> t;
  cin.ignore();
  cin >> p;
  cin.ignore();
  int n, m, l;
  n = p.length(), m = s.length(), l = t.length();
  if (l < m) return cout << "NO" << endl, 0;
  int dp[26] = {0};
  for (int i = 0; i < n; i++) dp[p[i] - 'a']++;
  for (int i = 0, j = 0; j < l; j++) {
    if (t[j] == s[i])
      i++;
    else {
      dp[t[j] - 'a']--;
    }
    if (j == l - 1 && i != m) return cout << "NO" << endl, 0;
  }
  for (int i = 0; i < 26; i++) {
    if (dp[i] < 0) return cout << "NO" << endl, 0;
  }
  cout << "YES" << endl;
  return 0;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cerr.tie(0);
  long long _ = 1;
  cin >> _;
  long long _t = _;
  while (_--) solve(_, _t);
}
