Used_in The definition of C++ [ c++.syntax.html ]. Used_in The definition of Java [ java.syntax.html ] Notation This uses my XBNF Extended BNF Notation where | indicates or, (...) indicates priority. For more information see [ intro_ebnf.html ].
To look at it in another way: Thymine(uracil in RNA) and cytosine are pyrimidines. Pyrimidines are single-ringed organic base that will only attach to purines, or adenine and guanine by hydrogen bond. Because cytosine and thymine are both pyrimidines, it cannot form a hydrogen bond with each other.
Adenine and Guanine are purine base. Cytocine, Thymine , Uracil are pyrimidine bases. In DNA base pairs like A-T,G-C. And in RNA it is A-U, G-C always. One strand of DNA Adenine always pair with thymine of other strand, and Guanine of one strand is always pair with cytocine of other strand.