# Exact meaning of metalinguistic variable

Consider the following BNF

<join-command> ::= <string> + <string>


In this context <join-command> and <string> are normally called metalinguistic variables or syntactic categories. Note that the first usage of <string> don't necessarily represent the same terminal string as the second usage.

Recently however I come across a slightly different notion of "metalinguistic variable" (in a course about formal logic). Here it meant a variable of the metalanguage that represent one string of the object language (i.e. terminal language) and always that. So the previous syntax would become:

<join-command> ::= <string1> + <string2>


What's the correct terminology? Should I avoid calling BNF syntactic categories "metalinguistic variables"?

Maybe calling them "syntactic variables" would fix the ambiguity?