I'm tempted to argue that "civil war" is simply an internal conflict of sufficient duration and dimension to be reasonably called "war", and that "insurgency" is a subset of civil war, typically involving irregular armed resistance to governance by a populace or portion thereof.

Like others here, though, I'm not convinced that the distinction is terribly useful, even in the unlikely event that we could agree on what the distinction is. The ability to apply a label to a conflict (or anything else) does not necessarily enhance understanding, and can obstruct understanding if the label carries enough assumptions with it.