Optical orthogonal codes (1D constant-weight OOCs or 1D CWOOCs) were first introduced by Salehi as signature sequences to facilitate multiple access in optical fibre networks. In fiber optic communications, a principal drawback of 1D CWOOCs is that large bandwidth expansion is required if a big number of codewords is needed. To overcome this problem, a two-dimensional (2D) (constant-weight) coding was introduced. Many optimal 2D CWOOCs were obtained recently. A 2D CWOOC can only support a single QoS (quality of service) class. A 2D variable-weight OOC (2D VWOOC) was introduced to meet multiple QoS requirements. A 2D VWOOC is a set of 0, 1 matrices with variable weight, good auto, and cross-correlations. Little is known on the construction of optimal 2D VWOOCs. In this paper, new upper bound on the size of a 2D VWOOC is obtained, and several new infinite classes of optimal 2D VWOOCs are obtained.