Just because Wikipedia doesn't mention it doesn't mean it doesn't exist :) I generally use the term DSL for embedded languages within a particular language (and for me, this includes printf and regexes). I like the term "little language" for constrained languages that don't have the full power of a programming language behind it, but may still require tokenization and parsing. But domain-specific language is the right term of art, regardless of whether your language is built using the features of your language or if you're building a completely new language.
I'd use the term DSL in the broader sense as well, for full-on programming languages targeting problems in a particular domain, but I've mostly built DSLs with the help of existing languages, namely Boo and Ruby. If your language supports metaprogramming, or functional abstractions, it's usually possible without much effort to build a DSL in or around the language. (In Boo, I usually build a DSL as an extension to the language using features of the compiler pipeline and the semantic macro syntax).
If you have less control over the syntax tree or the method call syntax is less flexible, you can use method chaining to create a fluent interface, which is a subset of what we think of as a DSL.
DSLs are well supported in Lisp-inspired languages, where you're essentially building a DSL anytime you write code.
As an aside, Donald Knuth also used the term literate programming for a style of programming that's self-documenting because the code serves as a readable document.