Matrioshka languages can be identified by their program forms, which will have multiple, distinct 'phases' with different syntactic and semantic rules. There are often two phases; the first gives a set of rules, and the second provides objects on which those rules are to be applied. There is, however, no technical restriction of two phases; each phase could define a new language description using the rules of the previous phase, indefinitely.
The term comes from the Russian word for the so-called "nesting dolls"; by analogy, a language-within-a-language. Comparable terms might be Curried language, by analogy with Curried functions (however, this term is already [ab?]used to describe languages which support Currying), or parameterized language, which already has a [more general?] formal definition.