Backus-Naur form (BNF) is a notation used to formally describe the syntax of programming languages. It ensures that the language's rules are clearly defined so that a computer can easily parse the source code.
Additionally, regular expressions are not always sufficient for defining certain languages. Therefore, Backus-Naur form serves as a robust metalanguage.

Example 1
<DIGIT> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6
This definition specifies that a digit can be any value from 0 to 6.
Example 2
<LETTER> ::= A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
This definition specifies that a letter can be any character from A to Z.
<WORD> ::= <LETTER><LETTER>
This rule defines a word as two letters. For instance, "W" and "WE" are valid words, while "GOING" is not, as it consists of more than two letters.