string = "#ifdef WIN32
SOCKET sock = INVALID_SOCKET;
#else
int sock = -1;
#endif
#ifdef WIN32
SOCKET sock = INVALID_SOCKET;
#endif
#ifdef WIN32
SOCKET sock = INVALID_SOCKET;
#else
int sock = -1;
#endif
#ifdef (WIN32)
test;
#else
int sock = -1;
#endif"
string.gsub(/#ifdef /(?WIN32/)?((.|/s)*?)(#endif|#else)/) {puts $1.strip}
SOCKET sock = INVALID_SOCKET;
#else
int sock = -1;
#endif
#ifdef WIN32
SOCKET sock = INVALID_SOCKET;
#endif
#ifdef WIN32
SOCKET sock = INVALID_SOCKET;
#else
int sock = -1;
#endif
#ifdef (WIN32)
test;
#else
int sock = -1;
#endif"
string.gsub(/#ifdef /(?WIN32/)?((.|/s)*?)(#endif|#else)/) {puts $1.strip}