case REG_RPAREN:
case REG_ERPAREN:
compile (char *__instring, char *__expbuf, __const char *__endbuf, int __eof){  char *__input_buffer = NULL;  size_t __input_size = 0;  size_t __current_size;  int __ch;  int __result;  /* Align the expression buffer according to the needs for an object     of type `regex_t'.  Then check for minimum size of the buffer for     the compiled regular expression.  */  regex_t *__expr_ptr;#if defined __GNUC__ && __GNUC__ >= 2  const size_t __req = __alignof__ (regex_t *);#else  /* How shall we find out?  We simply guess it and can change it is     this really proofs to be wrong.  */  const size_t __req = 8;#endif  __expbuf += __req;  __expbuf -= (__expbuf - ((char *) 0)) % __req;  if (__endbuf < __expbuf + sizeof (regex_t))    {      ERROR (50);    }  __expr_ptr = (regex_t *) __expbuf;  /* The remaining space in the buffer can be used for the compiled     pattern.  */  __expr_ptr->buffer = __expbuf + sizeof (regex_t);  __expr_ptr->allocated = __endbuf -  (char *) __expr_ptr->buffer;  while ((__ch = (GETC ())) != __eof)    {      if (__ch == '\0' || __ch == 'n')	{	  UNGETC (__ch);	  break;	}      if (__current_size + 1 >= __input_size)	{	  size_t __new_size = __input_size ? 2 * __input_size : 128;	  char *__new_room = __alloca (__new_size);	  /* See whether we can use the old buffer.  */	  if (__new_room + __new_size == __input_buffer)	    {	      __input_size += __new_size;	      __input_buffer = memcpy (__new_room, __input_buffer,				       __current_size);	    }	  else if (__input_buffer + __input_size == __new_room)	    __input_size += __new_size;	  else	    {	      __input_size = __new_size;	      __input_buffer = memcpy (__new_room, __input_buffer,				       __current_size);	    }	}      __input_buffer[__current_size++] = __ch;    }  __input_buffer[__current_size++] = '\0';  /* Now compile the pattern.  */  __error = regcomp (__expr_ptr, __input_buffer, REG_NEWLINE);  if (__error != 0)    /* Oh well, we have to translate POSIX error codes.  */    switch (__error)      {      case REG_BADPAT:      case REG_ECOLLATE:      case REG_ECTYPE:      case REG_EESCAPE:      case REG_BADRPT:      case REG_EEND:      case REG_RPAREN:      default:	/* There is no matching error code.  */	RETURN (36);      case REG_ESUBREG:	RETURN (25);      case REG_EBRACK:	RETURN (49);      case REG_EPAREN:	RETURN (42);      case REG_EBRACE:	RETURN (44);      case REG_BADBR:	RETURN (46);      case REG_ERANGE:	RETURN (11);      case REG_ESPACE:      case REG_ESIZE:	ERROR (50);      }  /* Everything is ok.  */  RETURN ((char *) (__expr_ptr->buffer + __expr->used));}