Is this language $\{0^n1^m | (n+m) \text{is even}\}$ regular or not? $$L=\{0^n1^m | (n+m) \text{is even}\}$$


Using the pumping lemma , 
let me choose a valid string $W=0011$ $(n=2,m=2$ and $4$ is even$)$.
Let the number of states in the DFA ($C$) be $3$ (I find this step to be fishy)
$|W|\ge C$
Let $W=XYZ$
I choose $X=00,Y=1,Z=1$ such that $|xy| \le C ,|Y| \ge1$
So, for all $i$, $00(1)^{i}1$ should be in $L$
But when $i=2$,String $00111$ is not in $L$, hence this language is not regular.


But I came across a regular expression for the same language:

$$0(00)^*1(11)^*+(00)^*(11)^*$$
Is there a flaw in my pumping lemma or the regular expression? Someone please help me out.
You seem to have misunderstood the pumping lemma.

Taking the definition from Introduction to the Theory of Computation by Michael Sipser


  If $A$ is a regular language, then there is a number $p$ (the
  pumping length) where if $s$ is any string in $A$ of length at least $p$, then $s$ may be divided into three pieces, $s = xyz$, satisfying the following conditions:
  
  
  for each $i ≥ 0, xy^i z \in A$,
  $|y| &gt; 0$, and
  $|xy| \le p$.
  


A few points:


The lemma only says that a pumping length $p$ exists. You do not get to choose the value of $p$. So, you cannot say that let $p=3$.
For every string $s$ in the language with length at least $p$, it may be divided into three pieces, $s=xyz$. Notice that this again talks only of the existence of a way to split $s$ into $xyz$ given that $A$ is regular. So, you do not get to choose how the string splits into $x$, $y$, and $z$ in the general case. Finding a split that does not satisfy the conditions does not show that the language is not regular. You need to find such a string that cannot be split as stipulated by the definition to show that a language is not regular.
Finally, the pumping lemma does not say what happens if $A$ is not regular. So, even a non-regular language may satisfy it, and the pumping lemma cannot be used to show that a language is regular.